нет хороших способов остановить сам запрос по сети (как уже говорили многие), но относительно легко остановить влияние запроса. т.е.
на стороне сервера: вы можете exit
(или любой другой термин, который вам потребуется для уничтожения скрипта), постоянно проверяя глобальные переменные (действующие как флаги), такие как куки или сеансы (опять же, предполагая, что они изменятся во время выполнение сценария). Кроме того, вы можете хранить файлы или записи в базе данных как флаги (которые вы можете опрашивать на предмет существования).
на стороне клиента: вы можете вызвать abort
(что не работает во всех браузерах, как говорили другие), или вы можете оставить глобальный семафор / флаг в верхней части вашего обратного вызова (который проверяет глобальное значение, чтобы увидеть, должно ли оно выполняться или нет). Пример:
window.ajaxIsStillGood = true;
xhr.onreadystatechange = function( )
{
if( 4 === xhr.readyState && 200 === xhr.status )
{
if( true === window.ajaxIsStillGood ){ /* still good */ }
}
}
/* bad stuff happens */
window.ajaxIsStillGood = false; // now the code won't execute