如何在javascript中捕获错误证书权限无效

如何在javascript中捕获错误证书权限无效,javascript,fetch,iot,Javascript,Fetch,Iot,我正在开发的Web应用程序需要从本地网络中的多个不同物联网获取数据,例如 const response = await fetch("https://192.168.0.245/api/auto/login", options); 由于它是一个https连接,并且每个IOT都带有一个自签名SSL证书,因此,上面的fetch()将抛出一个错误“TypeError:Failed to fetch”(因为证书尚未被接受),并且应用程序将在浏览器控制台中显示以下内容 OPTIONS https://1

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

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\u CERT\u AUTHORITY\u INVALID、ERR\u SSL\u PROTOCOL\u ERROR或ERR\u CONNECITON\u拒绝。。。等,以便我可以相应地显示不同的错误消息

不幸的是,fetch()函数总是在上述三种不同错误下引发相同的“TypeError:Failed to fetch”异常

我是否可以捕获此特定错误证书颁发机构无效异常


谢谢。

如果您的Internet连接不安全,则可能会出现此错误。表示它不是https

或者,您可以从服务器端删除ssl证书。因此,您的请求格式应该类似于“”

我查看了,它的功能应该与本机浏览器实现相同(尽管错误消息不同)。它不包括有关遇到的特定错误的信息。存在抛出
TypeError
s的错误,它们都如下所示:

reject(新类型错误('networkrequest failed'))
因此,您只会收到一条错误消息,而没有其他信息。查看的文档,除了一个简单的
异常
之外,您不会得到任何额外的信息
TypeError
是在这种情况下需要抛出的

您可能会找到另一个更具体地报告错误的库。我四处搜索了一下,但仅仅从文档中很难找到一个库是否具有该功能。您可能需要试用它们,看看它们提供什么样的错误报告。以下是几个选项:


或者您可以尝试直接使用
XMLHttpRequest
实现一个解决方案。
fetch
pollyfill代码是一个很好的起点。您可以分叉该项目并添加一些
控制台。记录
以查看它报告的错误类型。

ERR\u CERT\u AUTHORITY\u INVALID
错误与HTTPS连接有关。要解决此问题,您必须输入API基本url(例如
https://192.168.0.245
(或
https://192.168.0.245/api
)是
https://192.168.0.245/api/auto/login
)点击“高级”按钮后,再点击“不安全”按钮

在此之后,您可能会遇到404错误页面。现在,您可以在项目中再次使用API,而不会出现任何问题