jQuery Ajax错误 - 堆栈跟踪

时间:2015-09-15 02:14:59

标签: javascript jquery error-handling

如何从jQuery Ajax Error获取堆栈跟踪。

4 个答案:

答案 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,你的浏览器将暂停执行。在开发工具的调试器选项卡上,只需单击左窗格右上角的“调用堆栈”子部分。

Firefox Debugger Call Stack

如果要打印堆栈跟踪,还有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");
               }
          }
});