失败时停止 ajax 函数

Stop ajax function on failure

本文关键字:ajax 函数 失败      更新时间:2023-09-26

我正在运行一个返回请求状态的长轮询 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() 函数,因为代码的多个其他部分正在使用这种长轮询方法。我应该怎么做才能停止此功能?

尝试这样的事情

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

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

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

var req = $.ajax...
..
req.abort()
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 调用。