gpt4 book ai didi

javascript - 如何在 javascript 中捕获 ERR_CERT_AUTHORITY_INVALID

转载 作者:行者123 更新时间:2023-12-03 07:01:19 25 4
gpt4 key购买 nike

我正在开发的 Web 应用程序需要从本地网络中的多个不同 IOT 获取数据,例如,

const response = await fetch("https://192.168.0.245/api/auto/login", options);

由于是https连接,并且每个IOT都携带一个自签名的SSL证书,所以上面的fetch()会抛出一个错误“TypeError: Failed to fetch”(因为证书还没有被接受),应用将在浏览器的控制台中显示以下内容
OPTIONS https://192.168.0.245/api/auto/login net::ERR_CERT_AUTHORITY_INVALID

我需要的是能够在 javascript 中捕捉到这个错误。具体来说,我需要能够捕获不同的错误,例如 ERR_CERT_AUTHORITY_INVALID、ERR_SSL_PROTOCOL_ERROR 或 ERR_CONNECITON_REFUSED... 等,以便相应地显示不同的错误消息。

不幸的是,在上述所有这三个不同的错误下,fetch() 函数总是抛出相同的“TypeError: Failed to fetch”异常。

无论如何我可以捕捉到这个特定的 ERR_CERT_AUTHORITY_INVALID 异常吗?

谢谢你。

最佳答案

我看了fetch pollyfill code ,它的功能应该与 native 浏览器实现相同(尽管错误消息不同)。它不包括有关遇到的特定错误的信息。有two lines那个扔TypeError s 并且它们看起来都像这样:

reject(new TypeError('Network request failed'))

因此,您只会收到一条错误消息,而没有其他信息。并查看 TypeError 的文档,除了简单的 Exception 提供的信息之外,您不会获得任何额外信息. TypeError是什么 spec在这种情况下需要抛出。

您也许可以找到另一个更具体地报告错误的库。我搜索了一下,但很难仅从文档中找出库是否具有该功能。您可能必须尝试一下,看看它们提供了什么样的错误报告。这里有几个选项:
  • axios
  • superagent

  • 或者您可以尝试使用 XMLHttpRequest 实现解决方案直接地。 fetch pollyfill 代码是一个很好的起点。您可以 fork 该项目并添加一些 console.log s 看看它报告了什么样的错误。

    关于javascript - 如何在 javascript 中捕获 ERR_CERT_AUTHORITY_INVALID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59132805/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com