使用jQuery的Ajax功能:Ajax請求,如何調用除「成功」之外的其他函數?
$.ajax({
url: ...,
success: function(){
...
},
...
});
我需要的只是success
函數的每次調用之前執行一些代碼(但響應後,已經收到)。 我想這個success
函數被觸發就像一個事件,所以有沒有辦法讓其他函數調用來代替success
?
使用jQuery的Ajax功能:Ajax請求,如何調用除「成功」之外的其他函數?
$.ajax({
url: ...,
success: function(){
...
},
...
});
我需要的只是success
函數的每次調用之前執行一些代碼(但響應後,已經收到)。 我想這個success
函數被觸發就像一個事件,所以有沒有辦法讓其他函數調用來代替success
?
我通過自定義函數像更換$.ajax()
只是成功的人之前調用的其他功能成功:
function mYajax(options) {
var temporaryVariable = options.success;
options.success = function() {
console.log('Custom')
if (typeof temporaryVariable === 'function')
temporaryVariable()
};
return $.ajax(options);
}
$('button').click(function() {
mYajax({
url: "/echo/json/",
data: {
foo: "bar"
},
success: function (data, textStatus, jqXHR) {
console.log('succeed action');
},
});
});
你也可以調用其他的功能就在所做的biginning:
$.ajax({
url: ...,
done: function(){
someOtherFunction();
},
...
});
這應該差不多完成什麼,你在你的問題描述。
謝謝,但我的問題的目的實際上是爲了避免編輯我的數百個成功,錯誤處理程序作爲你的命題。 – Fractaliste
您可以使用Global Ajax Event Handlers方法來執行此操作。
聽起來像是你可能想使用AjaxComplete:
$(document).ajaxComplete(function(){
// do something here when ajax calls complete
});
被警告 - 這會爲每個頁面上的jQuery的AJAX調用發生......
Link的死夫家 –
@AndyHolmes對不起,剪切和粘貼。更新和修復。 – tkone
我做了一些測試,但'ajaxComplete'在'success'或'error'處理程序之後被調用嗎? – Fractaliste
是beforeSend你在找什麼:
$.ajax({
url: "...",
beforeSend: function (x) {
//do something before the the post/get
}
}).done(function (data) {
//done code
});
我不會在我的問題中說,但我想要在完成回調之前執行的代碼必須處理響應內容。 – Fractaliste
哦,我明白了,我沒有從你的問題中得到答案 – kmera
你可以用完成的第一條語句調用該函數 – kmera
你有沒有嘗試beforeSend? –
@AndyHolmes不,我從來沒有使用它,但實際上我想要執行的代碼在完成回調必須處理響應內容之前執行,所以我認爲beforeSend函數無法完成它,不是嗎? – Fractaliste