Javascript 全局配置所有$.ajax请求以支持超时重试
我需要一种使用$.ajaxSetup全局设置某种超时函数的方法,该方法允许我的Phonegap应用程序在每次由于internet连接错误而出现超时时都不断重试ajax GET或POST 我使用Backbone.js,所以大多数jquery插件都不适用于此,我将帮助编写一段全局代码,用于处理重试 谢谢。您可以使用 为将来的Ajax请求设置默认值。不建议使用它 范例 除此之外,如果您想在超时时再次执行调用,我建议您为ajax调用创建包装器,如Javascript 全局配置所有$.ajax请求以支持超时重试,javascript,jquery,ajax,cordova,backbone.js,Javascript,Jquery,Ajax,Cordova,Backbone.js,我需要一种使用$.ajaxSetup全局设置某种超时函数的方法,该方法允许我的Phonegap应用程序在每次由于internet连接错误而出现超时时都不断重试ajax GET或POST 我使用Backbone.js,所以大多数jquery插件都不适用于此,我将帮助编写一段全局代码,用于处理重试 谢谢。您可以使用 为将来的Ajax请求设置默认值。不建议使用它 范例 除此之外,如果您想在超时时再次执行调用,我建议您为ajax调用创建包装器,如 function myAjax(options){
function myAjax(options){
var myOptions = {
timeout: TimeoutValue,
error: function( jqXHR, textStatus, errorThrown) {
//textStatus can one of these "timeout", "error", "abort", and "parsererror"
if(textStatus === "timeout") {
//Recall method once again
myAjax(options)
}
}
};
options = $.extend(true, myOptions , options);
$.ajax(options)
}
并像使用
$一样使用该函数。ajax
找到了一个解决方案,可以使所有ajax调用在重试超时的情况下工作
$(document).ajaxError(function (e, xhr, options) {
if(xhr.status == 0){
setTimeout(function(){
console.log('timeout, retry');
$.ajax(options);
}, 5000);
}
});
您好,Satpal,这是一个很好的答案,但我需要一个全局函数来处理所有的应用程序调用,这就是为什么我希望只使用$.ajaxSetup完成某种函数。可能的重复
$(document).ajaxError(function (e, xhr, options) {
if(xhr.status == 0){
setTimeout(function(){
console.log('timeout, retry');
$.ajax(options);
}, 5000);
}
});