AJAX的status为canceled

https://stackoverflow.com/questions/12009423/what-does-status-canceled-for-a-resource-mean-in-chrome-developer-tools

 

AJAX默认的是异步模式,经过观察,频繁请求,之前的某个请求超时会引起这个问题。

改成同步即可。

 

 

status=canceled may happen also on ajax requests on JavaScript events:

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

<button id="call_ajax">call</button> 

The event successfully sends the request, but is is canceled then (but processed by the server). The reason is, the elements submit forms on click events, no matter if you make any ajax requests on the same click event.

To prevent request from being cancelled, JavaScript event.preventDefault(); have to be called:

<script>
  $("#call_ajax").on("click", function(event){
     event.preventDefault();
     $.ajax({
        ...    
     });
  });
</script>
  • 2
    This saved me, was the problem in my case where I used angular's ng-click on a button with type="submit" and then did some networking in the called function. Chrome kept canceling that request...– Robin Jan 6 '15 at 13:36
  • 1
    Unfortunately it does not work for me. Any other hints? – Krzysztof Jan 13 '16 at 10:10
  •  
    Vaov saved me too! For an angular ng-click event I had nested $http requests and second one was being canceled. After setting the prevent default line it started working again, thanks. – Bahadir Tasdemir Sep 20 '16 at 15:03
  •  
    Thanks for this. I knew it was not CORS or a DOM issue. Perhaps @whamma could update their answer to include this as possible cause for completeness :) – glidester Oct 20 '17 at 11:15
     
     
     
posted @ 2018-12-06 11:24  coolgame  阅读(308)  评论(0编辑  收藏  举报