【问题标题】:I cannot stop an ajax request using jQuery and abort() function我无法使用 jQuery 和 abort() 函数停止 ajax 请求
【发布时间】:2011-05-08 21:58:59
【问题描述】:

我的 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" 是 undefined ,我想我并没有停止这个 ajax 请求及其成功函数。

那么谁能帮帮我?

非常感谢!

【问题讨论】:

    标签: jquery ajax jsonp abort


    【解决方案1】:

    嗯,这是有道理的。

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

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

    我认为没有办法提前中止这种请求,但如果我错了,我希望有人在这里纠正我。

    【讨论】:

    • 是的。没有办法使用 abort() 函数终止 Jsonp 请求。但我想我已经使用 JavaScript serTimeout() 函数解决了这个问题。也许有人还会使用 clearTimeout() 函数。那挺好的。但在我的这种情况下,我只使用 setTimeout 函数来解决问题。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-16
      • 2013-04-30
      • 2018-03-20
      相关资源
      最近更新 更多