如何使用jQuery执行以下操作:
我发现,在jQuery 1.5
中引入了新方法,例如ajaxPrefilter
和ajaxTransport
。我还尝试了ajaxSetup
beforeSend
,
但我无法达到这些工作的2分......
答案 0 :(得分:0)
除非您确定自己在做什么,否则不要使用此
我不确定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调用onsucess将你的ajax包装器重新分配给jquery ajax
oldAjaxInstance = $.ajax;
$.ajax = myAjaxwrapper;
答案 1 :(得分:0)
奇怪,但它只适用于两种方法:)
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;
答案 2 :(得分:0)
好的,这个问题已在jQuery 1.5.1中修复。