失败时停止ajax功能

时间:2014-04-04 07:24:34

标签: javascript jquery ajax

我正在运行一个返回请求状态的长轮询ajax。如果失败,我需要停止ajax。 ajax写得像这样:

function someFunction(url){
    $.ajax({
        url: url,
        success: function(data){
            if(data.status == 'FAILED'){
                //Need this ajax to stop
            }
        }
    });
}



$('some-button').on('click',function(
    var url = 'server-url';
    someFunction(url);
));

我必须使用someFunction()函数,因为这个长轮询方法正被代码的其他多个部分使用。我该怎么做才能阻止这个功能呢?

3 个答案:

答案 0 :(得分:0)

$.ajax返回一个包装好的xhr对象。只需使用:

var req = $.ajax...
..
req.abort()

答案 1 :(得分:0)

尝试这样的事情

     function someFunction(url){
        $.ajax({
            url: url,
            success: function(data){
                if(data.status != 'FAILED'){
                    //Need this ajax to stop
                }
            }
        });
    }

您的ajax请求已成功完成。但是如果状态失败并且您希望停止进一步执行代码,则不能使用!

答案 2 :(得分:0)

var ajaxReq = null;
ajaxReq = $.ajax({
        url: url,
        success: function(data){
            if(data.status == 'FAILED'){
                //Need this ajax to stop                     
            }
        }
        error: function (x, y, z) {
            ajaxReq.abort();
       }
    });

你可以使用ajaxReq.abort()来停止ajax调用。