Идея состоит в том, что всякий раз, когда на сервере происходит определенный сценарий, я хочу, чтобы HTTP-вызов распознавался браузером как успешный, но при этом не вызывал функцию done () отложенного объекта, возвращаемого вызовом $ .ajax.
Чтобы справиться с этим, я думал о возврате с моего сервера пользовательского HTTP-кода (2XX, не обеспечивающего ни одного из стандартных HTTP-кодов успеха).Этот код будет общим и будет возвращаться всеми вызовами на стороне сервера, которые встречают этот сценарий
Теперь, в моем коде javascript, я хочу убедиться, что если код возврата - мой пользовательский 2XX, обещаниеМетод .done не должен вызываться.
Я догадывался, что-то вроде этого должно работать.
$.ajax({
/* url parameters here */
success: function (data, textStatus, jqXHR) {
/*This code is to handle custom return code 289
* This code ensures that if there is an issue in getting data from api side
* the actual promise.done() method is not called. because that would cause Javascript error*/
if(jqXHR.status === 289){
// Stop promise.done from being executed
// or override the promise.done function to something harmless
};
}
},
error: function (jqXHR, textStatus, errorThrown) {
},
complete: function (options, status) {
},
timeout: 60000
});
Есть ли какой-нибудь способ "отменить" вызываемый метод обещание стандартным способом?