我正在使用JSONP ajax调用从其他域加载某些内容,并且如果用户在按钮上造成“ mouseover”,则将执行所有这些操作。
我可以将$ .ajax()调用return捕获为xhr对象,并在用户每次导致“ mouseover”时使用它中止ajax请求。但是仍然会调用JSONP回调函数,这会导致错误,并且我认为这是因为xhr.abort()方法不会阻止调用回调函数。
我尝试用try {} catch(e){}包围$ .ajax()调用,但是在调用xhr.abort()方法之后,错误继续。
有没有办法处理该异常?
引发的异常是这样的(根据Firebug): jQuery16102234208755205157_1308941669256不是函数
异常的内部结构如下: jQuery16102234208755755205157_1308941669256({…我的json数据来自其他域....})
在jQuery 1.5中,所有Ajax API都在本机XHR对象周围有一个包装对象。看一眼:
http://api.jquery.com/jQuery.ajax/#jqXHR
jqxhr.abort(); // should be what you're looking for