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