如何从jQuery Ajax Error获取堆栈跟踪。
答案 0 :(得分:1)
如果您使用的是Chrome,我喜欢使用调试器关键字:https://developer.chrome.com/devtools/docs/javascript-debugging#printing-stack-traces 但是,根据问题的性质,您可能需要传入async:false或使用其他策略来获取您可能需要的堆栈跟踪(而不是错误回调的堆栈跟踪,这通常不那么有趣对你的问题)。
答案 1 :(得分:1)
有些人可能想知道如何评估调用成功/错误的源ajax调用的堆栈,因为这发生在新线程中。对于一些人来说,以下内容可能会有用:
var callingState = new Error(); // capture state/stack when ajax is called
jQuery.ajax({// just showing error property
error: function() {
// employ "closure" to access values from the ajax context
// access stack showing context when ajax was called
alert('Caller stack: ' + callingState.stack);
// access stack during "error" callback
alert('Current stack: ' + (new Error()).stack);
}
});
详细了解“封闭” - https://developer.mozilla.org/en-US/docs/Web/JavaScript/Closures
答案 2 :(得分:0)
在Firefox上,这非常简单。你在处理程序的内部放置一个断点,触发ajax,你的浏览器将暂停执行。在开发工具的调试器选项卡上,只需单击左窗格右上角的“调用堆栈”子部分。
如果要打印堆栈跟踪,还有console.trace()
。
答案 3 :(得分:-2)
您可以在ajax命令中添加它。
jQuery.ajax({// just showing error property
error: function(jqXHR,error, errorThrown) {
if(jqXHR.status&&jqXHR.status==400){
alert(jqXHR.responseText);
}else{
alert("Something went wrong");
}
}
});