Javascript 获取导致ajax错误的函数名

Javascript 获取导致ajax错误的函数名,javascript,jquery,ajax,Javascript,Jquery,Ajax,我正在使用我的第一个用于ajax调用的全局错误处理程序,从中获取错误信息,将其发送到PHP脚本,然后记录结果: $(document).ajaxError(function(event, request, settings){ //get the error and log the results var file = window.location.href; var verbose_error; verbose_error = 'Ajax error: '

我正在使用我的第一个用于ajax调用的全局错误处理程序,从中获取错误信息,将其发送到PHP脚本,然后记录结果:

$(document).ajaxError(function(event, request, settings){

    //get the error and log the results
    var file = window.location.href;
    var verbose_error;
    verbose_error = 'Ajax error: ' + request.responseText + '\n\n';
    verbose_error += 'Status:' + request.status + '\n\n';
    verbose_error += 'Status Text:' + request.statusText + '\n\n';
    verbose_error += 'Url: ' + settings.url  + '\n\n';
    verbose_error += 'Data: ' + settings.data  + '\n\n';
    verbose_error += 'Data Type: ' + settings.dataType  + '\n\n';
$.post(getUrl() + 'error/log-ajax-error',{file : file,verbose_error : verbose_error},function(o){

});
});
当我对我的PHP脚本进行错误处理时,我可以得到一个堆栈跟踪,以查看哪个函数实际导致了错误。假设我所有的ajax调用都是在其他函数中执行的,我可以得到导致问题ajax调用的函数名吗

例如,在下面的代码中,如果$.post返回错误,我希望能够访问名称badAjaxCall,然后将其放入日志中以帮助调试

function badAjaxCall() {
$.post(url,data,function(o){

});
}
创建一个
新错误()
并获取
堆栈。你会知道所有的细节。
只要您不抛出该错误,最终用户就不会注意到它。
如果希望在浏览器控制台中获得反馈,也可以执行抛出错误的操作

函数foo(){
baz();
}
函数baz(){
foobar();
}
函数foobar(){
var error=新错误();
警报(错误。堆栈)
}

foo(){'funcName':'badAjaxCall}
。在实际的ajax调用过程中,您可以忽略服务器端的该键。这听起来似乎可行,但我必须将其添加到所有ajax调用中。使用您的解决方案,我似乎必须在进行ajax调用的每个函数中实现它。对吗?我真正希望的是在.ajaxError中包含一些东西,它将抛出发送导致错误的ajax请求的原始函数。您可以为ajax调用创建一个包装函数,并在该包装中准备错误对象。然后,您还可以创建一个默认的错误包装来处理它。像这里一样,
foobar
将是进行任何ajax调用的包装器。您能用一些代码来澄清吗?这将是我第一次使用错误对象;我更像是一个PHP开发人员。