jquery阿贾克斯问题
我有一个问题,我希望有人能指出我在正确的方向。我试图解析使用jQuery的阿贾克斯此功能的XML文件中的代码:jquery阿贾克斯问题
此代码驻留在test.js文件
$(document).ready(function() {
$.ajax({
type: 'GET',
url: 'test.xml',
dataType: 'xml',
success: testIt
});
});
function testIt(xml) {
alert("Test");
}
这只是一个测试,我在跑在执行ajax请求后,它应该调用testIt
。问题在于它没有。由于这是一个测试,所以html,js和xml文件全部位于我的桌面上的同一目录中,例如/Users/Chris/Desktop/Development
。
如果我添加complete: testIt
它进入的功能。 test.xml已被检查并且有效。
我目前正在测试使用Safari 5.0.5,但我也测试了它在Firefox中,其作用是相同的。它或者是$.ajax
的怪癖,或者更可能是我做错了事情。
任何帮助,将不胜感激
在Firebug有一展身手,或在Chrome中内置的开发者工具,并采取从你的Ajax调用请求和结果一探究竟。如果success
没有运行,但complete
做,很可能是通话回来由于某种原因的错误状态(有可能是因为细节在他的answer subtenante概述)。
我想你的设置我的机器上,并添加error: function() { alert("didn't work..."); }
到AJAX选项,因为我怀疑请求回来错误代码。
如果你打算在年底开始使用这个网上,我建议你的地方上传的XML文件,并尝试从那里加载它,看看是否能工程。 (如果你运行的是本地网络服务器,“某处”可能是你自己的计算机,但你必须通过一个“真实”的URL链接到它,比如localhost:8080/something/test.xml)。
欢呼声 – Lipwig 2011-06-08 09:07:03
如果完整的函数执行,并且成功不执行,我建议在$ .ajax中添加一个错误函数,看看错误信息是什么。 – dioslaska 2011-06-08 08:55:08
你正在使用哪个jQuery版本?当ajaxing本地文件时,返回的状态码将是'0'而不是'200'(没有web服务器发送状态码)。例如jQuery 1.5在检查'0'时遇到问题。 – kapa 2011-06-08 08:55:53