我正在进行需要运行的ajax调用,如果失败,那么它应该重新初始化相同的ajax。正如我已经通过一些帖子那里有失败功能,我们可以告诉用户ajax调用失败并遵循一些功能。
但是我希望在失败或其他地方重新启用相同的ajax调用,这样当ajax失败时,失败就会再次进行。
deleteImage : function(objId,thumburl,original,ev){
jQuery('#imageBlocksDiv').append(jQuery("#confirmboxtmp").html());
setToCenterOfParent( $('#confirmbox'), document.body, false, true );
jQuery("#confirmbox").fadeIn().css({top:-210,position:'fixed'}).animate({top:50}, 100, function() {});
jQuery('#deleteconfirmbox').click(function(){
jQuery(this).text('Deleting..');
if(typeof objId!='undefined'){
var iputadatatologdelete = {
"media_image_objectId": objId,
"action" : "deleted"
};
iputadatatologdelete.company_objectId = jQuery('#cid').val();
iputadatatologdelete.edited_by_user_objectId = jQuery('#uid').val();
var inputData = {
'id' : objId,
'imgurl' : original,
'thumburl' : thumburl
}
jQuery.ajax({
'type':'POST',
'url': '#####/a###pi/###/####/#####',
'data' : inputData,
success : function(response){ //console.log(response)
jQuery('#'+objId).parents().eq(2).remove();
console.log(objId);
jQuery('#confirmbox').hide();
jQuery('#deleteconfirmbox').text('Delete');
pinterest(undefined);
logdata("sc_media_image_edited_log", iputadatatologdelete)
}
});
}
如果我为我所调用的各种ajax创建函数,那么函数是这样的,那将是一堆代码。因为我已经用不同的URL和类型制作了大量的ajax。
error : function(xhr, textStatus, errorThrown ) {
//try again
$.ajax(this);
return;
}
如果重新初始化相同的查询,这是否有效。
答案 0 :(得分:2)
您可以这样做:
function doAjax() {
$.ajax({
url: ...
success: ...
error: doAjax
});
}
doAjax();
请注意,在连续失败的情况下,除非您实施保护机制(例如计数器和在多次失败的触发后停止循环的条件),否则这将无限循环。
答案 1 :(得分:2)
要调用完全相同的ajax,你可以递归地进行调用,如下所示:
function callAjax(){
$.ajax( "example.php" )
.done(function() {
alert( "success" );
})
.fail(function() {
callAjax();
})
.always(function() {
alert( "complete" );
});
}
否则你可以使用“控制变量”控制它,如下所示:
function callAjax(){
var control = 0;
while (control === 0){
$.ajax( "example.php" )
.done(function() {
alert( "success" );
control = 1;
})
.fail(function() {
alert( "fail" );
})
.always(function() {
alert( "complete" );
});
}
}
我希望它可以帮到你。
答案 2 :(得分:1)
尝试以下代码:
$(document).ready(function(){
(function callAjax(){
$.ajax({
url: url,
success: function(res){ },
complete: callAjax
});
})();
})
您可以使用“完整”功能,因为您要么获得成功,要么错误完成函数将在每种情况下调用.. http://api.jquery.com/jquery.ajax/
答案 3 :(得分:1)
在错误回调中,调用相同的ajax请求方法
答案 4 :(得分:0)
在失败函数中,我们可以通过下面的行重置相同的ajax调用。
error : function(xhr, textStatus, errorThrown ) {
jQuery.ajax(this);
return;
},
如果我错了,请提供相同的反馈