$ http和$ ajax请求在Chrome中随机返回状态0

时间:2013-09-18 08:48:55

标签: jquery ajax angularjs nginx gunicorn

这不会在网站上一直发生,但偶尔会发生一次。

浏览器开始随机为页面中的XMLHTTPRequest请求返回状态0。

这适用于通过jquery ajax函数和angularJS中的$ http资源发出的请求

发生这种情况时,网络标签中没有任何内容。请求甚至不会进入网络层。

但是刷新之后问题就会消失,只是随机出现。

我没有在Firefox上做过很多测试,但我从未在那里经历过

我只使用相关路径。甚至不会出现跨域问题。

我曾尝试在stackoverflow上查看多个问题,但没有任何帮助我解决它

我使用nginx作为运行金字塔Web应用程序的gunicorn服务器的反向代理。

令我感兴趣的是,它有时会起作用,有时却不起作用。有什么想法吗?

如果我这样做

$.ajax({url: '/json/1/sources', 
    success: function(d){console.log(d)},
    error: function(){
        console.log("error");
        console.log(JSON.stringify(arguments))
    }})

我得到了

error
{"0":{"readyState":0,"responseText":"","status":0,"statusText":"error"},"1":"error","2":""}

作为输出

更多信息

当我打开Javascript控制台并点击disable cache while dev tools is open时,问题就会停止

1 个答案:

答案 0 :(得分:1)

所以这就是我必须做的就是摆脱这个随机错误。这可能听起来不科学,但如果有人遇到这个错误,这可能会有所帮助。

如果我收到该错误,我只需从标头中删除X-Requested-With密钥并重试该请求。

if($http.defaults.headers.common['X-Requested-With']){
                delete $http.defaults.headers.common['X-Requested-With'];

 }

事情开始奏效。就是这样。

我从未使用过此标题。所以我不介意删除它。

有时候Javascript会发生一些怪异的事情,即使你可能认为你已经完成了所有工作。

相关问题