ajax的错误处理程序,jQuery $ .ajax,错误处理程序不起作用

您好我注意到这个简单的代码不能正常工作...

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上运行,我的意思是:我加载页面,关闭本地网络服务器,然后我发出请求(通过一个简单的按钮,onclick指向此功能).错误永远不会被调用,我得到的是调用成功处理程序,它有textStatus ="success"和data = null.我甚至注意到请求在10秒之前很久就会超时.这种情况发生在Firefox(最新版本),Chrome(最新版本)和Safari 5上.为什么会这样?是因为我正在使用localhost吗?

我忘了告诉:请求没有缓存.实际上,firebug和Chrome开发工具都会显示失败请求.

大更新

此行为与localhost的使用有关.事实上,如果我从另一个同事PC加载此页面并在触发请求之前我将我的PC与网络断开连接,我正确地将错误处理程序以超时作为状态触发.我认为这是jQuery的一个bug.这将使我很难测试超时错误:(

来自jQuery论坛的人说这是由于网络堆栈中断连接的方式,因为主机是localhost.我只在Windows 7上测试过这个.如果你想在其他系统上测试这个并且你可以编写一些jQuery内部,请在jQuery论坛上报告这篇文章: