【问题标题】:jQuery Ajax Error - Stack TracejQuery Ajax 错误 - 代码日志
【发布时间】:2015-12-11 03:43:04
【问题描述】:

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

【问题讨论】:

    标签: javascript jquery error-handling


    【解决方案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】:

      如果您使用的是 chrome,我喜欢使用 debugger 关键字:https://developer.chrome.com/devtools/docs/javascript-debugging#printing-stack-traces 但是,根据问题的性质,您可能需要传入 async: false 或使用其他策略来获取您可能需要的堆栈跟踪(而不是错误回调的堆栈跟踪,这通常可能不太有趣你的问题)。

      【讨论】:

      【解决方案3】:

      在 Firefox 上,这很简单。您在处理程序内部放置一个断点,触发 ajax,您的浏览器将暂停执行。在开发工具的调试器选项卡上,只需单击左窗格右上角的调用堆栈子部分。

      如果你想打印堆栈跟踪,还有console.trace()

      【讨论】:

      • 嗨@MinusFour,这是正确的,但问题是我不想手动执行此操作,我想从我想监视异常的地方编写一个脚本,为此我需要堆栈trace,这个 console.trace() 不是跨浏览器的解决方案。
      【解决方案4】:

      您可以在 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");
                     }
                }
      }); 
      

      【讨论】:

      • 嗨@Hermes,这不适用于我的问题。我的问题不是如何在特定的 ajax 调用中获取错误消息,我的问题是如何在全局 jQuery ajax 错误回调中获取完整的堆栈跟踪。
      猜你喜欢
      • 2015-03-23
      • 2021-02-07
      • 2018-02-16
      • 1970-01-01
      • 1970-01-01
      • 2015-03-28
      • 1970-01-01
      • 1970-01-01
      • 2011-12-14
      相关资源
      最近更新 更多