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

这种情况经常发生,但不是每次都发生。似乎一旦缓存了一些其他资源,页面刷新就会加载LeftPane.aspx。真正奇怪的是,这只发生在谷歌Chrome浏览器中,而不是ie8。知道为什么Chrome会取消一个请求吗?


当前回答

status= cancelled也可能发生在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>

其他回答

其中一个原因可能是XMLHttpRequest.abort()在代码中某处被调用,在这种情况下,请求将在Chrome开发工具网络选项卡中具有取消状态。

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

另外,注意一些浏览器支持ALLOW-FROM设置,但Chrome不支持。

为了解决这个问题,你需要删除“X-Frame-Options”标题标签。这可能会让你容易受到点击劫持攻击,所以你需要决定风险是什么以及如何减轻它们。

这是chrome取消请求的另一个例子,我刚刚遇到过,上面的答案中没有提到。

简单地说 我的android手机上的自签名证书不受信任。

细节 我们正处于开发/调试阶段。url指向自签名主机。代码是这样的:

location.href = 'https://some.host.com/some/path'

Chrome只是默默地取消了请求,没有给像我这样的web开发新手留下任何线索来解决这个问题。一旦我使用android手机下载并安装了证书,问题就消失了。

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

我有一个类似的问题,我的按钮onclick={}被包装在一个表单元素。当点击按钮时,表单也被提交了,这把事情搞砸了……

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

当我关闭用户代理欺骗时;图像请求没有被取消,我看到了图像。

我仍然不明白为什么;在前一种情况下,当请求被取消时,请求头(注意:显示的是临时头)只有

接受 cache - control 编译指示 推荐人 用户代理

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

饼干 连接 宿主 接受编码 接收语言

耸耸肩