在重试时更改ajax数据

时间:2015-01-29 18:46:12

标签: javascript

有没有办法在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;
                   }
            }
     });

1 个答案:

答案 0 :(得分:1)

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

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;
    }
}