我无法使用jQuery和abort()函数停止ajax请求

时间:2010-11-12 06:48:24

标签: jquery ajax jsonp abort

我的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()​​

您可以在此处试用此代码:http://jsbin.com/iyile3/2/edit

我想停止这个ajax请求并停止这个ajax请求的成功函数。

但我得到的是“x”未定义,我想我不会停止这个ajax请求及其成功函数。

那么有人可以帮助我吗?

非常感谢!

2 个答案:

答案 0 :(得分:9)

那是有道理的。

jsonp调用不是普通的XMLHttpRequest(.ajax()通常会返回)。它不会那样工作,因为你无法突破same origin policy

JSON-Padding适用于动态脚本标记插入。所以基本上,jQuery只是在你的网站上创建一个<script>标签并加载数据。完全没有XHR个对象。

我认为没有办法尽早中止这种要求,但如果我错了,我希望有人能在这里纠正我。

答案 1 :(得分:4)

我认为documentation可能会对此有点误导。使用JSONP时没有发出AJAX请求。在这种情况下,ajax函数返回undefined值而不是XMLHTTPRequest的对象。