我有这段代码:
function MyFunction() { $.ajax({ type: "POST",url: "ajax.PHP",dataType: "json",data: "foo=bar",error:function(XMLHttpRequest,textStatus,errorThrown) { alert(arguments.callee); },success: function(jsonObject) { //do something } }); }
我想要的是,de error scoope内的警报显示函数名称,在这种情况下为“MyFunction”,而是我所得到的是error:function。
我该如何实现?
解决方法
这个 –
var my_arguments; function MyFunction() { my_arguments = arguments; $.ajax({ type: "POST",url: "http://www.google.com",errorThrown) { alert(my_arguments.callee.name); },success: function(jsonObject) { //do something } }); }
是你需要的
错误函数中的参数是指该方法自己的参数对象。它不是指MyFunction的参数对象。这就是为什么你得到错误:MyFunction。在这种情况下使用全局变量为您提供了解决此问题的解决方法。
另外,为了获得该函数的名称,您需要使用arguments.callee.name。 arguments.callee会给你一个引用调用函数,而不是字符串中的函数名。