Когда я использую обратный вызов успеха, это решение работает нормально, но когда я использую .done(), это не удается, как я могу повторить отправку запроса на ajax с заданным значением .done() .fail() и завершенные() зарегистрированные обратные вызовы?Задержка JQuery Ajax (jqXHR) Запрос с завершенными/неудачными/полными обратными вызовами
var requestQueue = [];
$.ajaxSetup({
cache: false,
beforeSend: function (jqXHR, options) {
if(true){ //any condition 'true' just demonstrate
requestQueue.push({request:jqXHR,options:options});
//simulate process this queue later for resend the request
window.setTimeout(function(){
//this will work with success callbak option,
//but with .done() the console.log("Well Done!");
// will fail
$.ajax($.extend(requestQueue.pop().options, {global:false, beforeSend:null}));
}, 3000)
return false;
}
}
});
$.ajax({
url:"TesteChanged.html",
error: function(){
console.log("Oh nooooo!");
}
}).done(function(){
console.log("Well Done!");
});
Я хочу Ставить в Ajax вызова (основанный в состоянии), чтобы отправить позже, но когда его повторную передачу, .done() /. Сбой() оригинал обратного вызова должен быть вызван. С помощью опции «success» callback этот код работает нормально.
Не уверен, что именно вы запрашиваете, но вы можете установить свойство 'context' для вас ajax-объекта, который будет передан обратно во все обратные вызовы. Вы можете хранить все, что хотите. –
@JimCote Я хочу вставить ajax-вызов (основанный в состоянии) для повторной отправки позже, но при повторном отправке его необходимо вызвать .done() /. Fail(), который должен быть вызван изначального обратного вызова, попробуйте выполнить мой код. Когда вы используете параметры успеха, он работает нормально, но не работает с .done(). –
Я только использовал свойства 'success' и' complete' объекта ajax (так же, как вы использовали 'error'). –