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

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


当前回答

当我用$调用a. js文件时,也发生了同样的情况。ajax,并发出一个ajax请求,我所做的是正常调用。

其他回答

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>

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

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

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

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

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

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

我有两个CSS文件,它们存储在我的主CSS文件夹之外的另一个文件夹中。我正在使用表达式引擎,发现问题是在我的htaccess文件中的规则。我只是将文件夹添加到我的条件之一,它修复了它。这里有一个例子:

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

因此,检查htaccess文件是否存在潜在冲突是值得的

当我用$调用a. js文件时,也发生了同样的情况。ajax,并发出一个ajax请求,我所做的是正常调用。