[英]jQuery ajax request proxy
我如何使用jQuery執行以下操作:
我發現,在jQuery 1.5
中引入了新方法,例如ajaxPrefilter
和ajaxTransport
。 我也試過ajaxSetup
與beforeSend
,但我不能達到2分這些工作的?
除非你確定自己在做什么,否則不要使用它
我不確定ajax intercepter庫。 但我可以告訴你討厭的黑客
獲取原始jquery ajax實例的副本
var oldAjaxInstance; //some global variable oldAjaxInstance = $.ajax; //in document load
並將您的intercepert方法分配給$ .ajax指針
$.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調用成功將你的ajax包裝器重新分配給jquery ajax
oldAjaxInstance = $.ajax; $.ajax = myAjaxwrapper;
奇怪,但它只適用於兩種方法:)
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;
好的,這個問題已在jQuery 1.5.1中修復。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.