我怎樣才能做到與jQuery以下操作:jQuery的Ajax請求代理
- 某些庫發送Ajax請求通過 $就
- 我需要捕捉這些 請求,並在某些情況下,中止 他們,而是傳遞另一個 數據。
我發現,在jQuery 1.5
中引入新的方法,如ajaxPrefilter
和ajaxTransport
。我也試過用ajaxSetup
beforeSend
, 但我不能達到2分這些工作......
我怎樣才能做到與jQuery以下操作:jQuery的Ajax請求代理
我發現,在jQuery 1.5
中引入新的方法,如ajaxPrefilter
和ajaxTransport
。我也試過用ajaxSetup
beforeSend
, 但我不能達到2分這些工作......
好的,這個問題在jQuery 1.5.1中修復。
不要使用這個,除非,直到你該死肯定你在做什麼
我不確定ajax intercepter庫。但我可以告訴你討厭的黑客你原來的jQuery AJAX實例
var oldAjaxInstance; //some global variable
oldAjaxInstance = $.ajax; //in document load
的
採取拷貝並分配intercepert方法到$就指針
$.ajax = myAjaxwrapper;
myAjaxwrapper看起來像這樣
function myAjaxwrapper(a) {
//your logic to change the request data's
if (you are ok to allow the ajax call) {
//re Assgin the actual instance of jquery ajax
$.ajax =oldAjaxInstance;
//and call the method
$.ajax(a);
}
//Otherwise it wont be called
}
而且你的Ajax調用的onsucess重新分配您的Ajax調用jQuery的AJAX
oldAjaxInstance = $.ajax;
$.ajax = myAjaxwrapper;
常見的問題是,我無法訪問$就...在能解僱任何圖書館。我要在外面接住... – 2011-02-03 12:17:24
奇怪,但它僅適用於對夫婦有兩個方法:)
function enableFakeAjax(isEnable, fakeData) {
isFakeAjax = isEnable;
$.ajaxPrefilter(function(options, originalOptions, jqXHR) {
if (isFakeAjax) {
jqXHR.abort();
originalOptions.success(fakeData);
}
});
$.ajaxSetup({
beforeSend: function(jqXHR, settings) {
if (isFakeAjax) {
jqXHR.abort();
}
}
});
}
enableFakeAjax(true, jsonData);
isFakeAjax = false;
您是否需要捕捉請求或響應?當然,如果你需要捕捉請求你只想把一個if圍繞$阿賈克斯,而不是陳述書上作出的請求......在你的答案 – Rob 2011-02-03 11:40:46