我正在嘗試學習jQuery,並且我遇到了一個與ajax有關的小問題。我正在嘗試使用從頁面的XML響應返回的值填充JavaScript數組。
這裏是我的主網頁(ajax.html):即使查詢成功,jQuery ajax錯誤函數也會執行
<html>
<head>
<script type="text/javascript" src="jquery/jquery.js"></script>
<script type="text/javascript" src="jquery/fiber.js"></script>
</head>
<body>
<p>Ajax</p>
<script>
var ringType = new Array();
</script>
</body>
</html>
fiber.js是這樣的:(?沒有\反斜線)
//process things for fiber map
jQuery(document).ready(function() {
// do stuff when DOM is ready
//populate and display ringType
$.ajax({
type: "GET",
url: "ajaxHelper.pl",
data: {
getRingTypes: "1",
},
dataType: "xml",
success: function(xml) {
//if the query was successfull,
alert("Got an xml object:"+$(xml));
$(xml).find("ringType").each(function(){
alert("Received reply "+$(this).text());
var type = $(this).html(); //save the value
//append to ringType array
ringType.push(type);
});
},
error:function (xhr, ajaxOptions, thrownError){
alert(xhr.status);
alert(thrownError);
}
});
for(var i=0; i<ringType.length; i++){
document.write("<br>"+ringType[i]);
}
});
ajaxHelper.pl生成此XML(如內容 - 類型text/XML):
<?xml version="1.0" encoding="ISO-8859-1"?>
<\?xml version="1.0" encoding="ISO-8859-1"\?>
<ringType>IA</ringType>
<ringType>IL</ringType>
<ringType>IN</ringType>
<ringType>IR</ringType>
<ringType>RT</ringType>
的問題是,每次我打開ajax.html時候,AJAX查詢是成功的,但在執行錯誤的功能! xhr.status = 200(表示查詢正常)並且thrownException未定義。
抱歉,XML沒有正確粘貼。這裏再次(有一些空格): <? xml version =「1.0」encoding =「ISO-8859-1」? > < ringType > IA ringType> < ringType > IL ringType> < ringType > IN ringType> < ringType > IR ringType> < ringType > RT ringType> – Adrian 2009-06-09 09:13:37
嘗試把<?XML版本= 「1.0」 編碼=」 UTF-8「?>在輸出XML文檔的頂部,如果您還沒有 – karim79 2009-06-09 09:32:59
如果您在瀏覽器(http://mywebapp/ajaxHelper.pl)中打開ajaxHelper.pl文件,瀏覽器是否識別作爲XML文件的響應? – 2009-06-09 10:22:16