这个想法是,每当服务器中发生某种情况时,我都希望浏览器将HTTP调用识别为成功,但仍不调用$ .ajax调用返回的延迟对象的done()函数。
为了解决这个问题,我正在考虑从服务器返回自定义HTTP代码(2XX,确保没有任何标准的HTTP成功代码)。
此代码将是通用的,并且遇到这种情况的所有服务器端调用都将返回此代码
现在,在我的JavaScript代码中,我想确保如果返回代码是我的自定义2XX,则不应调用promise.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
});
是否可以通过标准方式“取消”被调用的promise.done方法?