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

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


当前回答

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

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

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

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

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

其他回答

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

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

请求可能已经被跟踪保护插件阻止了。

如果您使用axios,它可以帮助您

// change timeout delay: Instance.defaults.timeout = 2500;

https://github.com/axios/axios#config-order-of-precedence

对于我的案例,我有一个锚与点击事件像

<a href="" onclick="somemethod($index, hour, $event)">

里面点击事件我有一些网络呼叫,Chrome取消请求。锚有href与""意味着,它重新加载页面,同时它有点击事件与网络调用被取消。每当我用void替换href时

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

问题消失了!

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

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

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

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

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