gpt4 book ai didi

javascript - 如何重新发送失败的 ajax 请求?

转载 作者:可可西里 更新时间:2023-11-01 02:02:22 24 4
gpt4 key购买 nike

我有多个 ajax 请求,每分钟都有一些请求数据,其他请求则由用户通过 ui 发起。

$.get('/myurl', data).done(function( data ){
// do stuff..
});

由于身份验证失败,请求可能会失败。我已经设置了一个全局 .ajaxError() 方法来捕获任何失败的请求。

$(document).ajaxError(function( e, jqxhr ){
// Correct error..
});

发现错误后,我重置了授权。重置授权有效,但用户必须手动重新启动 ajax 调用(通过 ui)。

如何使用最初发送的 jqxhr 重新发送失败的请求?

(我正在为 ajax 使用 jQuery)

最佳答案

找到 this post这表明可以很好地解决这个问题。

主要是用$.ajaxPrefilter并将您的错误处理程序替换为检查重试并使用闭包的“originalOptions”执行重试的自定义错误处理程序。

我发布代码以防万一它将来会脱机。同样,信用属于the original author .

// register AJAX prefilter : options, original options
$.ajaxPrefilter(function( options, originalOptions, jqXHR ) {

originalOptions._error = originalOptions.error;

// overwrite error handler for current request
options.error = function( _jqXHR, _textStatus, _errorThrown ){

if (... it should not retry ...){

if( originalOptions._error ) originalOptions._error( _jqXHR, _textStatus, _errorThrown );
return;
};

// else... Call AJAX again with original options
$.ajax( originalOptions);
};
});

关于javascript - 如何重新发送失败的 ajax 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8881614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com