2012-02-21 62 views
7

estoy usando jQuery para hacer peticiones AjaxCómo detener petición ajax

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

¿Cómo puedo detener manualmente mi petición ajax particular?

+1

posible duplicar: http://stackoverflow.com/questions/446594/kill-ajax-requests-using-javascript-using-jquery –

+0

bien, gracias. No pude encontrarlo después de googlear un poco duro – tsds

Respuesta

22

El método $.ajax() devuelve un objeto que podría ser utilizado para hacer eso:

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

y luego más tarde cuando se desea detener la solicitud:

xhr.abort(); 
+1

ajax se puede detener desde que se inició, pero una vez hecho no es posible detenerlo ... – JIA

+4

@JIA, puede cancelar la solicitud AJAX en el navegador, pero por supuesto si tiene Ya llegó al servidor web, esa es una historia completamente diferente. El servidor web continuará ejecutando la solicitud. Es solo que, dado que el navegador abortó la solicitud, el servidor web enviará la respuesta al vacío. –

+0

@DarinDimitrov por lo que significa que si una solicitud ya iniciada se cancela utilizando el método '.abort', no se atenderá en el lado del cliente ... – JIA

4

peticiones Ajax son HTTP transacciones vez hecho No puede ser detenido. Puede detener el inicio de la solicitud ajax pero no eliminar la solicitud ya hecha.

+2

Las solicitudes de XHR, como todas las solicitudes de HTTP, se pueden cancelar mientras se está en curso. Si una determinada biblioteca de Ajax expone esta funcionalidad es un problema diferente. – GregT

Cuestiones relacionadas