2

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

浏览器开始随机返回页面中 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,问题就停止了

4

1 回答 1

1

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

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

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

 }

事情开始起作用了。而已。

我从来没有用过这个标题。所以我不介意删除它。

有时,Javascript 中确实会发生一些令人毛骨悚然的事情,即使您可能认为您已经涵盖了所有内容。

于 2013-09-24T10:38:53.083 回答