How to catch ERR_CERT_AUTHORITY_INVALID in javascript(如何在javascript中捕获ERR_CERT_AUTHORITY_INVALID)
问题描述
我正在开发的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_REJECTED.等,因此我可以相应地显示不同的错误消息。
遗憾的是,在上述三个不同的错误中,FETCH()函数总是抛出相同的"TypeError:Failed to Fetch"异常。
是否可以捕获此特定ERR_CERT_AUTHORITY_INVALID异常?
谢谢您。
推荐答案
我查看了fetch pollyfill code,它的功能应该与本机浏览器实现相同(尽管错误消息不同)。它不包括有关遇到的特定错误的信息。有twolines抛出TypeError
,它们看起来都是这样:
reject(new TypeError('Network request failed'))
因此您只会收到一条错误消息,而不会收到其他信息。查看TypeError的文档,除了简单的Exception
提供的信息之外,您不会获得任何额外的信息。TypeError
是spec在这种情况下需要抛出的对象。
您也许能够找到另一个更具体地报告错误的库。我四处搜索了一下,但仅从文档中很难找到库是否具有该特性。您可能需要尝试一下,看看它们提供了什么样的错误报告。以下是几个选项:
- axios
- superagent
或者您可以尝试直接使用XMLHttpRequest
实现解决方案。fetch
pollyfull代码就是一个很好的起点。您可以分叉该项目并添加一些console.log
,以查看它报告的错误类型。
这篇关于如何在javascript中捕获ERR_CERT_AUTHORITY_INVALID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何在javascript中捕获ERR_CERT_AUTHORITY_INVALID
基础教程推荐
- 有没有办法使用OpenLayers更改OpenStreetMap中某些要素 2022-09-06
- 在 JS 中获取客户端时区(不是 GMT 偏移量) 2022-01-01
- 动态更新多个选择框 2022-01-01
- 悬停时滑动输入并停留几秒钟 2022-01-01
- 我什么时候应该在导入时使用方括号 2022-01-01
- 当用户滚动离开时如何暂停 youtube 嵌入 2022-01-01
- Karma-Jasmine:如何正确监视 Modal? 2022-01-01
- 角度Apollo设置WatchQuery结果为可用变量 2022-01-01
- 在for循环中使用setTimeout 2022-01-01
- 响应更改 div 大小保持纵横比 2022-01-01