我想使用一些特殊情况处理程序扩展我的所有应用程序的 ajax 调用,并且如果需要,能够重新触发启动 ajax 调用的方法。我遇到的问题是我无法从我的匿名函数事件处理程序(ajaxSend 或 ajaxSuccess)获取触发 ajax 调用的调用函数的名称。我已经尝试了下面评论的所有调用者/被调用者的变体以及许多其他变体。这是一些示例代码:
var ajaxcaller;
$(document).ajaxSend(function(event,xhr,settings){
// Before we fire off our call lets store the caller.
// ajaxcaller = arguments.callee.caller.name;
//alert("get caller:"+arguments.callee.caller.name);
//alert("get caller:"+caller.name);
//alert("get caller:"+this.caller.toString());
//alert("get caller:"+event.caller.toString());
});
$(document).ajaxSuccess(function(event,xhr,settings){
var xobj = $.parseJSON(request.responseText);
if(xobj.ReFire === 1){
//Successful ajax call but not results we expected, let's refire
//Fix some params automagically here then
//SOME CODE HERE THAT Refires my caller
}
});
$(document).ajaxError(function(event,xhr,settings){
var xobj = $.parseJSON(request.responseText);
if(xobj.ReFire === 1){
//Fix some params automagically here then
//SOME CODE HERE THAT Refires my caller
}
});