重试时更改 ajax 数据

Change ajax data on retry

本文关键字:ajax 数据 重试      更新时间:2023-09-26

有没有办法在 ajax 重试时更改提供的数据?我想在数据参数中传递user="auth"进行第一次调用,如果失败,则将用户更改为"ANON"并重试调用此新数据参数。用户显示为未定义,我在下面设置它。

     $.ajax({
            url : proxyurl,
            type : 'GET',
            dataType : 'xml',
            user : "auth",
            tryCount : 0,
            retryMax : 2,
            data : {'apireq': apiurl+"?user="+this.user},
            success : function(data){
            },
            error: function(xhr,textStatus,errorThrown){    
                   if (textStatus == 'parsererror') {
                       this.user = "ANON";
                       this.tryCount++;
                       if (this.tryCount <= this.retryMax) {
                           $.ajax(this)                                         //try the call again
                           return;
                       }            
                       return;
                   }
            }
     });

我们能够达到以下解决方案:

error: function(xhr,textStatus,errorThrown){    
    if (textStatus == 'parsererror') {
        this.user = "ANON";
        this.data = {'apireq': apiurl + "?user=" + this.user };
        this.tryCount++;
        if(this.tryCount <= this.retryMax) {
            $.ajax(this); //try the call again
            return;
        }            
        return;
    }
}