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

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


当前回答

从严格的Angular角度来看:

当你不能在代码层面上正确地中断时,就会发生这种情况。

假设request1出来了,它的响应也是, 在那之后,嵌套的request2也出去了,它的响应也来了,我们直接打破了循环,没有正确地破坏request1的订阅,

在那个时候,它发生了

其他回答

在我的情况下,问题的原因是另一个。

我的应用程序坐在代理后面,Chrome请求被发送与If-Modified-Since HTTP头。当这个头文件出现时,预期的行为是:

只有在给定日期后最后一次修改时,服务器才会以200状态发送回所请求的资源。如果请求此后未被修改,则响应将是一个没有任何正文的304;

代理没有满足这一期望,响应一个304状态代码,但一个非空的主体,从而导致请求被取消。

在修复代理行为后,请求就像一个魅力。

从严格的Angular角度来看:

当你不能在代码层面上正确地中断时,就会发生这种情况。

假设request1出来了,它的响应也是, 在那之后,嵌套的request2也出去了,它的响应也来了,我们直接打破了循环,没有正确地破坏request1的订阅,

在那个时候,它发生了

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

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

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

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

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

我们有这个问题有标签<按钮>的形式,这是应该从js发送ajax请求。但是这个请求被取消了,由于浏览器,它会自动发送表单内的任何点击按钮。

因此,如果你真的想在页面上使用button而不是常规的div或span,并且你想发送form throw js -你应该设置一个带有preventDefault函数的监听器。

e.g.

$('button').on('click', function(e){

    e.preventDefault();

    //do ajax
    $.ajax({

     ...
    });

})

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

但“很多”人有AdBlock....

为了排除扩展,以隐身方式打开一个新标签,确保你想测试的扩展“允许隐身”是关闭的。