2011-06-08 179 views
2

我有一个问题,我希望有人能指出我在正确的方向。我试图解析使用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的怪癖,或者更可能是我做错了事情。

任何帮助,将不胜感激

+0

如果完整的函数执行,并且成功不执行,我建议在$ .ajax中添加一个错误函数,看看错误信息是什么。 – dioslaska 2011-06-08 08:55:08

+0

你正在使用哪个jQuery版本?当ajaxing本地文件时,返回的状态码将是'0'而不是'200'(没有web服务器发送状态码)。例如jQuery 1.5在检查'0'时遇到问题。 – kapa 2011-06-08 08:55:53

回答

0

Firebug有一展身手,或在Chrome中内置的开发者工具,并采取从你的Ajax调用请求和结果一探究竟。如果success没有运行,但complete做,很可能是通话回来由于某种原因的错误状态(有可能是因为细节在他的answer subtenante概述)。

我想你的设置我的机器上,并添加error: function() { alert("didn't work..."); }到AJAX选项,因为我怀疑请求回来错误代码。

如果你打算在年底开始使用这个网上,我建议你的地方上传的XML文件,并尝试从那里加载它,看看是否能工程。 (如果你运行的是本地网络服务器,“某处”可能是你自己的计算机,但你必须通过一个“真实”的URL链接到它,比如localhost:8080/something/test.xml)。

+0

欢呼声 – Lipwig 2011-06-08 09:07:03