我正在开发一个使用网络套接字的网络应用程序,它在除 Safari 之外的所有主要浏览器上都能正常工作。然后我做了一些挖掘,发现虽然 Safari 7 支持 WebSocket,但它不能很好地与 SSL 配合使用。它一直在错误控制台中给我这样的错误消息:
WebSocket 网络错误:OSStatus 错误 -9807:证书链无效。
我想捕获这个错误然后做一些解决方法。但是我认为这是 Safari 的错误,我在初始化 WebSocket 时尝试了 try/catch,它没有落入 catch 语句。
所以我想知道我是否可以捕捉到这种来自浏览器的错误?
任何帮助都会很棒!
谢谢!
最佳答案
WebSocket的onclose
属性在发生WebSocket network error: OSStatus Error -9807: Invalid certificate chain
时调用。
通过将函数附加到 onclose
,可以检测到由于 SSL/TLS 连接不受支持或失败而导致的 WebSocket 连接失败。
如评论中所述,onerror
不会在 Safari v9 (Mac) 或更早版本上针对 SSL/TLS 连接错误调用。
关于javascript - 使用javascript捕获Safari抛出的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19940498/