你好,我注意到,这个简单的代码不工作,它应该工作的方式......
function test() {
$.ajax({
'url' : 'test/GameConfiguration.json',
'dataType' : 'json',
data : {
a : 'aaa'
},
cache : false,
method : 'get',
timeout : 10000, //10 secs of timeout
success : function(data, textStatus, XMLHttpRequest) {
console.log("success");
if (data == null)
console.log("it's not a real success");
},
error : function(XMLHttpRequest, textStatus, errorThrown) {
console.log("error: " + textStatus);
}
});
}
测试已在本地主机上运行,我的意思是:我加载页面,关闭本地web服务器,然后我发起请求(通过一个简单的按钮,onclick指向这个函数)。错误不会被调用,我得到的是成功处理程序调用,它有textStatus =“success”和data = null。我甚至注意到请求在10秒之前超时。 这发生在Firefox(最新版本),Chrome(最新版本)和Safari 5.这是为什么?是否因为我在本地主机上工作?
我忘了告诉:请求没有被缓存。事实上,萤火虫和Chrome开发工具都会显示失败的要求。
大更新
此行为与使用本地主机。事实上,如果我从另一个同事PC加载此页面,并在触发请求之前断开我的PC与网络的连接,我将错误处理程序正确地启用,并将超时设置为状态。我认为这是jQuery的一个bug。这会让我很难测试超时错误:(
家伙从jQuery的论坛上说,这是由于网络堆栈中止连接的方式,给定主机为localhost,我测试了在Windows 7只是如果你觉得测试这个在其他系统上,你可以在jQuery的论坛,制定出一些jQuery的内部,报告这个帖子:
做为什么你'“url''和'”引述字符串dataType''? – Codesleuth 2010-09-01 10:00:39
我试图删除引号:没有区别 – gotch4 2010-09-01 10:02:06
你可以为此显示一个演示页面吗? – Nalum 2010-09-01 10:14:35