Я не могу остановить ajax-запрос, используя функции jQuery и abort () - PullRequest
7 голосов
/ 12 ноября 2010

Мой JQuery ниже:

var x = $.ajax({
    dataType: "jsonp",
    url: "https://ajax.googleapis.com/ajax/services/search/images?q=google&v=1.0",
    success: function(msg){
       alert( "Jsonp data: " + msg );
    }
});

alert(x);  // x is undefined
// x.abort()​​

1004 *

Вы можете попробовать этот код здесь: http://jsbin.com/iyile3/2/edit

Я хочу остановить этот запрос ajax и остановить функцию успеха этого запроса ajax.

Но то, что я получаю, это то, что "x" не определено, я думаю, что не прекращаю этот запрос ajax и его функцию успеха.

Так кто-нибудь может мне помочь?

Большое спасибо!

Ответы [ 2 ]

9 голосов
/ 12 ноября 2010

Ну, это имеет смысл.

A jsonp вызов не является обычным XMLHttpRequest (который обычно возвращает .ajax ()).Это не сработает, потому что вы не можете вырвать same origin policy.

JSON-Padding работает с динамической вставкой тега скрипта.Таким образом, в основном, jQuery просто создает тег <script> на вашем сайте и загружает данные поверх него.Нет XHR объекта вообще.

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

4 голосов
/ 12 ноября 2010

Я думаю, что документация может немного вводить в заблуждение.При использовании JSONP запрос AJAX не выполняется.В этом случае функция ajax возвращает значение undefined вместо объекта XMLHTTPRequest.

...