Как вы отмените/отмените запрос, используя библиотеку прототипов 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);          
               } 

            }); 

Как я могу отменить запрос и отбросить данные или не получив этого, как я могу идентифицировать запрос (используя имя /guid/whatever ) внутри моего метода onSuccess, чтобы я мог определить, какой запрос завершается?

Я думал о том, чтобы делать array.push(pendingRequest) для отслеживания ожидающих запросов

Я хочу разрешить пользователю прерывать свой запрос, изменять входные значения и повторно отправлять.

Иногда исходный запрос заканчивается после нового запроса, и я заменяю "правильные" данные на "старые" данные. (результаты поиска возвращают 50 000 записей в первом запросе и 5 во втором, например)

Спасибо,

Ответы

Ответ 1

Вы можете использовать XHR abort.

Объект XHR хранится в pendingRequest.transport, поэтому используя

pendingRequest.transport.abort()

отменит запрос.