我使用上个月曾经工作的the tutorial here,但现在还没有。我已经复制了下面的相关代码。
<script>
(function($) { //In case jQuery no conflict is being used
$(document).ready(function() { //wait for document ready
$("#loaddaold").click(function () {
alert("123");
//$( "#duplicateshere" ).empty();
$.ajax({
type: "GET",
url: "ajax-oldmessages.php",
dataType: "xml",
success: xmlParser
});
});
});
function xmlParser(xml) {
alert("456");
//$("#rev2").slideDown();
$(xml).find("result").each(function () {
$("#appendhere").append('<a href="/debates/' + $(this).find("id").text() + '">' + $(this).find("title").text() + '</a><br>');
//$(".book").fadeIn(1000);
});
}
})(jQuery);
// http://www.webdevdoor.com/jquery/javascript-delay-input-field-change/
// http://papermashup.com/parse-xml-with-jquery/
// (not used) http://www.paulund.co.uk/process-each-node-of-xml-in-jquery
</script>
问题是在成功的ajax请求之后没有调用xmlParser()函数。它显示123警报但不显示456警报。我做错了什么,或者教程错了吗?
以前在另一个问题上,我被告知这是一个CORS问题,但是我在计算机上调用该文件,在我的例子中,那么现在的问题是什么?
答案 0 :(得分:2)
如果您正在使用
dataType: "xml text"
如果你的回复中有一个无效的xml,那么成功就不会消失
检查您的回复,因为它无效...如果您想测试您的代码只需更改
{{1}}
您将看到确认无效xml数据的警报(456)
我已经复制了您的问题,并在我的回复中放入了有效的xml,代码运行正常
此外,如果您希望的数据只是一个包含ID的字符串,请尝试使用
{{1}}
注意:从jQuery 1.5开始,jQuery可以将dataType从Content-Type标头中收到的内容转换为您需要的内容