jquery中断(取消/abort)ajax请求

如果一个ajax请求过长,你可能会有取消之前发起的一次请求的需要。这里介绍jquery中如何实现。其实jquery发起一个ajax请求后会返回一个jqXHR对象,你随后可对该对象进行操作,包括abort中断操作。示例代码:

var jqXhr = $.ajax({  
            url: 'some ajax url',
            success: function(data) {
                //do something
            },
            error:function(data,error){
                console.log(error);
            },
            complete:function(){
                jqXhr = null;
            }
        });
 setTimeout(function(){
    if(jqXhr && jqXhr.readyState!= 4){
        jqXhr.about();
    }
 },50);

取消成功的话,ajax请求参数中的error函数会被触发。console.log(error)一句将打印出“abort”字样。
注意:jquery 1.5之前的版本需要将上述代码中的readyState改成小写的readystate。