2010-07-01 14 views
15

Utilizando este código:¿Cómo abortas/cancelas una solicitud usando la biblioteca prototype js?

var pendingRequest = new Ajax.Request(myUrl, { 
       method: 'post', 
       postBody: soapMsg, 
       contentType: "text/xml", 
       onSuccess: function(transport) { 
        doSomething(transport); 
       }, 
       onFailure: function(t) { 
        OnAjaxFailure(t); 
       }, 
       onException: function(req,exception) { 
        OnAjaxException(req, exception);   
       } 

      }); 

¿Cómo puedo cancelar la petición y descartar los datos, o en su defecto, ¿cómo podría identificar la solicitud (usando un nombre/GUID/lo que sea) dentro de mi método onSuccess para que yo puede decir qué solicitud se está completando?

Yo estaba pensando en hacer un Array.push (pendingRequest) para realizar un seguimiento de las solicitudes pendientes

Quiero que el usuario pueda interrumpir su solicitud, cambie los valores de entrada y vuelva a enviar.

A veces la solicitud original finaliza después de la nueva solicitud y estoy reemplazando los datos "correctos" con los datos "anteriores". (Resultados de búsqueda devuelven 50.000 registros en la primera consulta y 5 en el segundo, por ejemplo)

Gracias,

Respuesta

20

Puede utilizar XHR de abort.

El XHR-objeto se almacena en pendingRequest.transport, así que usar

pendingRequest.transport.abort() 

sería cancelar la solicitud.

+0

perfecto, gracias –

Cuestiones relacionadas