在Chrome开发者工具中,资源的状态=取消了什么?

什么会导致页面被取消? 我有一个Chrome开发工具的截图。

取消的资源

这经常发生,但不是每次。 好像有一些其他资源被caching,页面刷新将加载LeftPane.aspx。 而真正奇怪的是,这只发生在谷歌浏览器,而不是Internet Explorer 8.任何想法为什么Chrome会取消一个请求?

我们打了一个类似的问题,其中Chrome取消了在帧或iframe中加载内容的请求,但只是间歇性的,而且似乎取决于计算机和/或Internet连接的速度。

这些信息已经过时了几个月,但是我从头开始构buildChromium,通过源代码查找所有请求可能被取消的地方,并将所有这些地方的断点都打上了debugging对象。 从内存中,Chrome将取消请求的唯一位置:

  • 导致请求的DOM元素被删除(即IMG正在加载,但在加载之前,您删除了IMG节点)
  • 你做了一些不必要的加载数据。 (即你开始加载一个iframe,然后更改src或覆盖内容)
  • 有很多的请求去同一台服务器,并在以前的请求networking问题表明,后续请求不会工作(DNS查找错误,较早(相同)的请求导致,如HTTP 400错误代码等)

在我们的例子中,我们最终将其追溯到一帧,试图将HTML附加到另一个帧,有时发生在目标帧甚至加载之前。 一旦你触及一个iframe的内容,它就不能再加载资源(它怎么知道把它放在哪里?),这样就取消了请求。

status = cancel也可能发生在JavaScript事件的Ajax请求上:

 <script> $("#call_ajax").on("click", function(event){ $.ajax({ ... }); }); </script> <button id="call_ajax">call</button> 

事件成功发送请求,但是被取消(但由服务器处理)。 原因是,无论您是否在同一个点击事件上发出任何Ajax请求,元素都会在点击事件上提交表单。

为了防止请求被取消,JavaScript event.preventDefault(); 必须被称为:

 <script> $("#call_ajax").on("click", function(event){ event.preventDefault(); $.ajax({ ... }); }); </script> 

您可能需要检查“X-Frame-Options”标题标签。 如果它设置为SAMEORIGIN或DENY,那么iFrame插入将被Chrome(和其他浏览器)按规范取消。

此外,请注意,某些浏览器支持ALLOW-FROM设置,但Chrome不支持。

要解决这个问题,你需要删除“X-Frame-Options”头标签。 这可能会让你开始点击劫持,所以你需要决定风险是什么,以及如何缓解风险。

另外要注意的可能是AdBlock扩展,或一般的扩展。

但“很多”的人有AdBlock ….

要排除扩展程序,请在隐身模式下打开一个新标签页,确保您要testing的扩展程序的“允许隐身模式closures”。

这是发生在我身上的事情:服务器正在为302redirect返回格式错误的“位置”标头。 铬当然没有告诉我这一点。 我在Firefox中打开页面,并立即发现问题。 很高兴有多个工具:)

就我而言,我发现它是jquery全局超时设置,一个jquery插件的设置全局超时时间为500ms,这样当请求超过500ms时,chrome会取消请求。

注意:确保你没有任何包装表单元素

我有一个类似的问题,我的button与onclick = {}包装在一个表单元素。 当点击button时,表单也被提交,而这一切都搞砸了…

这个答案可能永远不会被任何人阅读,但我想为什么不写:)

在iframe中的单独域上的安全和非安全页面之间redirect时,取消的请求发生在我身上。 redirect的请求在开发工具中显示为“已取消”的请求。

我有一个包含由支付网关托pipe的表单的iframe页面。 当提交iframe中的表单时,支付网关将redirect回到我的服务器上的URL。 redirect最近停止工作,而最终成为“取消”的请求。

看起来,Chrome(我使用的是Windows 7 Chrome 30.0.1599.101)不再允许在iframe中redirect到单独域上的非安全页面。 为了解决这个问题,我只是确保iframe中的任何redirect请求总是被发送到安全的URL。

当我用一个iframe创build了一个更简单的testing页面时,控制台中出现了一个警告(我以前错过了或者没有显示):

 [Blocked] The page at https://mydomain.com/Payment/EnterDetails ran insecure content from http://mydomain.com/Payment/Success 

在PC,Mac和Android上的Chrome浏览器中,redirectfunction已被取消。 我不知道,如果它是特定于我的网站设置(SagePay低调)或如果在Chrome中改变了。

我有两个CSS文件存储在我的主css文件夹以外的另一个文件夹完全相同的事情。 我正在使用expression式引擎,发现问题是在我的htaccess文件的规则。 我只是将文件夹添加到我的一个条件,并修复它。 这是一个例子:

 RewriteCond %{REQUEST_URI} !(images|css|js|new_folder|favicon.ico) 

所以它可能是值得你检查你的htaccess文件的任何潜在的冲突

Chrome版本33.0.1750.154 m一直取消图像加载,如果我使用指向我的本地主机的移动仿真 ; 特别是与用户代理欺骗 (只是屏幕设置)。

当我closures用户代理时, 图像请求没有取消,我看到的图像。

我还是不明白为什么; 在前一种情况下,取消请求的请求标题(仅显示临时标题)仅具有

  • 接受
  • caching控制
  • 附注
  • 引荐
  • 用户代理

在后一种情况下,所有这些加上其他人,如:

  • 曲奇饼
  • 连接
  • 主办
  • 接受编码
  • 接受语言

当我通过JavaScriptredirect时,Chrome中出现此错误:

 <script> window.location.href = "devhost:88/somepage"; </script> 

正如你所见, 我忘记了“http://” 。 我添加后,它的工作。

打电话给我时发生在我身上。 与$的js文件。 ajax,并做出一个Ajax请求,我所做的是正常的调用。

在我的情况下,显示电子邮件客户端窗口的代码导致Chrome停止加载图像:

 document.location.href = mailToLink; 

将它移动到$(window).load(function(){…})而不是$(function(){…})。

在这种情况下,我可以帮助任何人,当我遗漏了返回false时,遇到取消状态; 在表单提交。 这导致ajax发送之后立即提交操作,它覆盖当前页面。 代码如下所示,最后重要的返回值为false。

 $('form').submit(function() { $.validator.unobtrusive.parse($('form')); var data = $('form').serialize(); data.__RequestVerificationToken = $('input[name=__RequestVerificationToken]').val(); if ($('form').valid()) { $.ajax({ url: this.action, type: 'POST', data: data, success: submitSuccess, fail: submitFailed }); } return false; //needed to stop default form submit action }); 

希望能帮助别人。

对于来自LoopbackJS的任何人,并尝试使用图表示例中提供的自定义stream方法。 我得到这个错误使用PersistedModel ,切换到一个基本的Model解决了我的问题的eventsource状态取消。

同样,这是专门为回送API。 因为这是一个顶级的答案,谷歌顶部我想我把这个混合的答案。

我遇到了同样的问题,在我们的代码深处,我们有这个伪代码:

  • 创build一个iframe
  • onload iframe提交表单

  • 2秒后,删除iframe

因此,当服务器花费超过2秒钟的时间来响应服务器正在向其写入响应的iframe时,被删除,但响应仍然被写入,但是没有iframe要写入,因此chrome取消了请求,因此为了避免这种情况,我确保iframe只在响应结束后才被移除,或者您可以将目标更改为“_blank”。 因此,其中一个原因是: 当你正在写入的资源(在我的情况下是iframe)被删除或删除之前,你停止写入它的请求将被取消

对于我的情况,我有一个像点击事件的锚点

 <a href="" (click)="onClick($index, hour, $event)"> 

在点击事件我有一些networking电话,chorme取消请求。 锚点有""意味着试图去初始(空)路线,同时它有点击事件与networking电话! 每当我用void来代替href

 <a href="javascript:void(0)" (click)="onClick($index, hour, $event)"> 

问题消失了!

我们遇到(canceled)状态的另一个地方是在特定的TLS证书configuration错误。 如果诸如https://www.example.com的网站configuration错误,导致证书不包含www. 但对https://example.com有效,chrome将取消该请求并自动redirect到后一个站点。 这不是 Firefox的情况。

目前有效的例子: https : //www.pthree.org/