2012-02-21 4 views
7

Я использую JQuery для создания AJAX-запросыКак остановить запрос Ajax

$.ajax(
    url: "http://someurl.org", 
    success: function() { ... } 
); 

Как я могу вручную остановить свой конкретный запрос Ajax?

+1

Возможный дубликат: http://stackoverflow.com/questions/446594/kill-ajax-requests-using-javascript-using-jquery –

+0

ОК, спасибо. Я не смог найти его после некоторого жесткого googling – tsds

ответ

22

Метод $.ajax() возвращает объект, который может быть использован, чтобы сделать это:

var xhr = $.ajax(
    url: "http://someurl.org", 
    success: function() { ... } 
); 

, а затем позже, когда вы хотите, чтобы остановить запрос:

xhr.abort(); 
+1

ajax может быть остановлен от начала, но как только его не удалось остановить его ... – JIA

+4

@JIA, вы можете прервать запрос AJAX в браузере, но, конечно, если он уже попал на веб-сервер, это совсем другая история. Веб-сервер продолжит выполнение запроса. Просто, поскольку браузер отменил запрос, веб-сервер отправит ответ на пустоту. –

+0

@DarinDimitrov, поэтому это означает, что если уже инициированный запрос прерывается с использованием метода '.abort', он не будет обслуживаться на стороне клиента ... – JIA

4

запросы Ajax являются HTTP транзакций один раз сделал невозможно остановить. Вы можете остановить запрос ajax от запуска, но не убить уже сделанный запрос.

+2

Запросы XHR, как и все HTTP-запросы, могут быть прерваны во время выполнения. Независимо от того, предоставляет ли определенная библиотека Ajax эту функциональность, это другая проблема. – GregT