一尘不染

用jQuery中止JSONP ajax请求

ajax

我正在使用JSONP ajax调用从其他域加载某些内容,并且如果用户在按钮上造成“ mouseover”,则将执行所有这些操作。

我可以将$ .ajax()调用return捕获为xhr对象,并在用户每次导致“
mouseover”时使用它中止ajax请求。但是仍然会调用JSONP回调函数,这会导致错误,并且我认为这是因为xhr.abort()方法不会阻止调用回调函数。

我尝试用try {} catch(e){}包围$ .ajax()调用,但是在调用xhr.abort()方法之后,错误继续。

有没有办法处理该异常?

引发的异常是这样的(根据Firebug): jQuery16102234208755205157_1308941669256不是函数

异常的内部结构如下:
jQuery16102234208755755205157_1308941669256({…我的json数据来自其他域....})


阅读 270

收藏
2020-07-26

共1个答案

一尘不染

在jQuery 1.5中,所有Ajax API都在本机XHR对象周围有一个包装对象。看一眼:

http://api.jquery.com/jQuery.ajax/#jqXHR

 jqxhr.abort(); // should be what you're looking for
2020-07-26