Google Chrome开发者窗口的“网络”标签中的状态栏下“待定”是什么意思?
当我的页面脚本发出GET请求时,会发生这种情况,该请求的响应包含用于下载CSV文件的内容标题:
Content-type: text/csv;
Content-Disposition: attachment; filename=myfile.csv
这在FF和IE7中工作正常,按预期下载CSV文件并打开文件选择器以保存文件,但Chrome不执行任何操作。我确认服务器会响应请求,因此Chrome似乎无法处理响应。
奇怪的是,如果我在Chromes地址栏中键入URL并点击。
,所有工作都按预期工作仅供参考:Win-XP上的Chrome 10.0.648.204
答案 0 :(得分:58)
在我的情况下,我发现(经过多次拉扯)“挂起”状态是由AdBlock扩展引起的。我无法加载的图片在网址中包含“ad”字样,因此AdBlock无法加载。
停用AdBlock可解决此问题。
重命名文件,使其在URL中不包含“ad”也可以修复它,显然是一个更好的解决方案。除非是广告,否则你应该这样做。 :)
答案 1 :(得分:5)
我在使用HTTPS Anywhere插件时也会得到这个。 此插件有一个网站列表,这些网站也有https而不是http。所以我假设在提出实际请求之前它已经被某种方式取消了。
例如,当我转到http://stackexchange.com时,在Developer I中,我首先看到一个状态为已终止的请求(已终止)。此请求有一些标头,但只有GET,User-Agent和Accept。也没有回应。
然后有https://stackexchange.com请求完整标题等
所以我假设它用于未发送的请求。
答案 2 :(得分:5)
我对待处理的mp3文件请求有些问题。 我有一个mp3文件列表和一个播放它们的播放器。如果我选择了已下载的文件,Chrome会阻止该请求并在开发者工具的网络标签中显示“待处理请求”。
所有版本的Chrome似乎都受到了影响。
这是我找到的解决方案:
player[0].setAttribute('src','video.webm?dummy=' + Date.now());
您只需在每个网址的末尾添加一个虚拟查询字符串。这会强制Chrome再次下载该文件。
爆米花播放器的另一个例子(使用jquery):
url = $(this).find('.url_song').attr('url');
pop = Popcorn.smart( "#player_", url + '?i=' + Date.now());
这对我有用。实际上,资源不存储在缓存系统中。对于.csv文件,这也应该以相同的方式工作。
答案 3 :(得分:2)
我在OSX Mavericks上遇到了同样的问题,结果发现Sophos反病毒阻止了某些请求,一旦我卸载它,问题就消失了。
如果您认为它可能是由扩展引起的,那么尝试测试的一种简单方法就是使用'--disable-extensions
标志打开chrome以查看它是否解决了问题。如果这还没有解决,请考虑在浏览器之外查看是否有任何其他应用程序可能导致问题,特别是可能影响请求的安全应用程序。
答案 4 :(得分:2)
答案 5 :(得分:1)
我在application / json ajax调用时遇到了类似的问题。在ff / IE中他们很好。在Developer Network窗口中的chrome中,Status始终(挂起),因为返回了不同的状态代码。
在我的情况下,我更改了我的Json响应,发送了一个200的HttpStatusCode,然后Chrome就可以了,状态文本更改为200 OK。
例如,使用ASP.NET Web Api
return new HttpResponseMessage(HttpStatusCode.OK ) {
Content = request.Content
};
答案 6 :(得分:1)
Chrome的问题:我的html页面中包含以下代码:
<body>
...
<script src="http://myserver/lib/load.js"></script>
...
</body>
但是,当查看网络面板时,load.js
始终处于状态pending
。
我找到了使用load.js
的异步加载的解决方法:
<body>
...
<script>
setTimeout(function(){
var head, script;
head = document.getElementsByTagName("head")[0];
script = document.createElement("script");
script.src = "http://myserver/lib/load.js";
head.appendChild(script);
}, 1);
</script>
...
</body>
现在工作正常。
答案 7 :(得分:1)
最近遇到了类似的问题。 我的应用程序的角度为 11,我们有一个带有一些验证器的表单,这些验证器具有正则表达式来验证数据。一个数据元素有一个特殊字符,正则表达式没有处理它,它使整个浏览器挂断了。事实上,即使所有网络调用都以 200 Ok 成功,但 chrome 没有显示后端返回的任何响应,并且当事实上所有网络调用都成功时,chrome 还显示处于挂起状态的请求,没有控制台日志错误或任何其他内容。处理正则表达式解决了这个问题。 发现问题后,我用谷歌搜索了更多相关信息。这里有更多关于它的解释。 https://javascript.info/regexp-catastrophic-backtracking
答案 8 :(得分:0)
我在调试本地Web应用程序时遇到了这个问题。该问题最终成为AVG防病毒和防火墙限制。我不得不允许通过防火墙的异常摆脱“待定”状态。
答案 9 :(得分:0)
对我来说,修复是将以下内容添加到正在请求的php文件的顶部。
header("Cache-Control: no-cache,no-store");
答案 10 :(得分:0)
在我的情况下,Chrome有一个更新,在重新启动浏览器之前无法加载。干杯
答案 11 :(得分:-2)
当我从页面请求某些图像时遇到了同样的问题。我使用JavaScript来设置img对象的src属性,如果网络很差,则会在chrome developer窗口的网络面板中显示。我认为这是由于网络不畅造成的。