【问题标题】:How to catch HTTP errors in Javascript如何在 Javascript 中捕获 HTTP 错误
【发布时间】:2020-12-18 17:56:40
【问题描述】:

我正在用 Javascript 编写 Stream Deck 插件,我想将错误记录到文件中。我不知道如何捕获网络错误的详细信息。这些错误出现在调试控制台中,但是我怎样才能在我自己的日志中得到它们呢? xhr.onerror() 方法返回的有用信息不多,只是状态码 0。 我尝试添加一个窗口错误事件侦听器,但从未触发。例如这里的代码:

var xhr = new XMLHttpRequest()
xhr.onerror = function() {console.log('xhr error', arguments)}
window.onerror = function() {console.log('window error', arguments)}
xhr.open('GET', 'http://badurl12345')
xhr.send()

在调试控制台中运行这段代码,我看到了GET http://badurl12345/ net::ERR_NAME_NOT_RESOLVED。但我无法从错误处理程序中获取此信息。

【问题讨论】:

  • 为什么不用try catch?
  • @dılosürücü - 它不适用于 OP 所描述的内容。

标签: javascript streamdeck


【解决方案1】:

我认为 JavaScript 代码无法获得该级别的信息。即使是更新的fetch API 也会严格限制您在network error occurs 时获得的信息(例如您的名称解析失败示例):

类型为“错误”的响应称为网络错误。

网络错误是一个响应,其状态始终为0,状态消息始终为空字节序列,标头列表始终为空,正文始终为空。

【讨论】:

    猜你喜欢
    • 2018-01-16
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 2011-03-12
    • 1970-01-01
    • 2012-01-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多