首页 文章

Chrome Developer Window中的“待定”含义是什么意思?

提问于
浏览
86

Google Chrome开发者窗口的“待处理" mean under the status column in the "网络”标签有哪些内容?

当我的页面脚本发出GET请求时,会发生这种情况,该请求的响应包含用于下载CSV文件的内容 Headers :

Content-type: text/csv;
Content-Disposition: attachment; filename=myfile.csv

这在FF和IE7中工作正常,按预期下载CSV文件并打开文件选择器以保存文件,但Chrome不执行任何操作 . 我确认服务器会响应请求,因此Chrome似乎无法处理响应 .

奇怪的是,如果我在Chromes地址栏中键入URL并点击,则所有工作都按预期工作 .

仅供参考:Win-XP上的Chrome 10.0.648.204

11 回答

  • 4

    在我的情况下,我发现(经过多次拉扯)“挂起”状态是由AdBlock扩展引起的 . 我无法加载的图片在网址中包含“ad”字样,因此AdBlock无法加载 .

    禁用AdBlock可修复此问题 .

    重命名文件,使其在URL中不包含“ad”也可以修复它,显然是一个更好的解决方案 . 除非是广告,否则你应该这样做 . :)

  • 56

    我在使用HTTPS Anywhere插件时也会得到这个 . 这个插件有一个网站列表,也有https而不是http . 所以我假设在实际请求之前它已经被某种方式取消了 .

    因此,例如当我转到http://stackexchange.com时,在Developer I中,我首先看到一个状态为已终止的请求(已终止) . 此请求有一些标头,但只有GET,User-Agent和Accept . 没有回应 .

    然后有https://stackexchange.com请求完整 Headers 等 .

    所以我假设它用于未发送的请求 .

  • 2

    我对待处理的mp3文件请求有些问题 . 我有一个mp3文件列表和一个播放它们的播放器 . 如果我选择了已下载的文件,Chrome会阻止该请求并在开发人员工具的网络标签中显示“待处理请求” .

    所有版本的Chrome似乎都会受到影响 .

    这是我找到的解决方案:

    player[0].setAttribute('src','video.webm?dummy=' + Date.now());
    

    您只需在每个URL的末尾添加一个虚拟查询字符串 . 这会强制Chrome再次下载该文件 .

    爆米花播放器的另一个例子(使用jquery):

    url = $(this).find('.url_song').attr('url');
    pop = Popcorn.smart( "#player_",  url + '?i=' + Date.now());
    

    这适合我 . 实际上,资源不存储在缓存系统中 . 对于.csv文件,这也应该以相同的方式工作 .

  • 5

    我在OSX Mavericks上遇到了同样的问题,结果发现Sophos反病毒阻止了某些请求,一旦我卸载它,问题就消失了 .

    如果您认为它可能是由扩展引起的,那么尝试和测试的一种简单方法是使用 '--disable-extensions 标志打开chrome以查看它是否解决了问题 . 如果这不能解决问题,请考虑在浏览器之外查看是否有任何其他应用程序可能导致问题,特别是可能影响请求的安全应用程序 .

  • 0

    我在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
            };
    
  • 0

    与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>
    

    现在它的工作正常 .

  • 1

    The Network pending state on time, means your request is in progressing state. As soon as it responds the time will be updated with total elapsed time.

    This picture shows the network call is in processing state(Pending)
    This picture shows the network call is in processing state(Pending)

    This picture shows the time taken in processing by network call.
    This picture shows the time taken in processing by network call

  • 0

    我在调试本地Web应用程序时遇到了这个问题 . 问题结果是AVG Antivirus和防火墙限制 . 我不得不通过防火墙允许异常摆脱“待定”状态 .

  • 1

    对我来说,修复是将以下内容添加到正在请求的php文件的顶部 .

    header("Cache-Control: no-cache,no-store");
    
  • 1

    在我的情况下,Chrome有一个更新,使其在重新启动浏览器之前无法加载 . 干杯

  • -2

    当我从页面请求某些图像时遇到了同样的问题 . 我使用JavaScript来设置img对象的src属性,如果网络很差,则会在chrome developer窗口的网络面板中显示 . 我认为这是由于网络不佳造成的 .

相关问题