您好,我注意到,这个简单的代码无法正常工作……
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);
}
});
}
该测试已在localhost上运行,我的意思是:我加载页面,关闭本地Web服务器,然后触发请求(通过一个简单的按钮,其中onclick指向此功能)。错误永远不会被调用,我得到的是调用成功处理程序,它具有textStatus
=“ success”和data = null。我什至注意到请求在10秒之前就超时了。在Firefox(最新版本),Chrome(最新版本)和Safari
5上会发生这种情况。为什么呢?是由于我在本地主机上工作吗?
我忘了告诉:请求没有被缓存。实际上,firebug和Chrome开发人员工具都显示请求失败。
大更新
此行为与本地主机的使用有关。实际上,如果我从另一台同事PC加载此页面,并且在触发请求之前我已断开PC与网络的连接,则可以正确获取以超时为状态触发的错误处理程序。我认为这是jQuery的错误。这将使我很难测试超时错误:(
jQuery论坛的家伙说这是由于网络堆栈中止连接的方式(假设主机是localhost)。我仅在Windows
7上测试过。如果您想在其他系统上进行测试,并且可以解决一些jQuery内部问题,请在jQuery论坛上向此职位举报: