使用JavaScript捕获Safari抛出的错误

3
我正在开发一个使用Web Socket的web应用程序,在所有主流浏览器上都能正常工作,但在Safari上却不行。我进行了一些调查,发现虽然Safari 7支持WebSocket,但它与SSL不兼容。它一直在错误控制台中给我显示以下错误消息:
WebSocket network error: OSStatus Error -9807: Invalid certificate chain.
我想捕获这个错误,然后做一些解决方法。然而,我认为这是来自Safari的错误,我尝试在初始化WebSocket时使用try/catch,但它没有进入catch语句。
所以我想知道是否可以捕获来自浏览器的这种错误?
任何帮助都将是非常感激的!
谢谢!

1
这也让我感到沮丧。socket.onerror没有被调用,套接字和事件对象都没有显示任何错误的迹象。 - lionello
1个回答

2

当出现WebSocket网络错误:OSStatus错误-9807:无效证书链时,WebSocket的onclose属性会被调用。

通过将函数附加到onclose,可以检测由于不支持或SSL / TLS连接失败而导致的WebSocket连接失败。

正如注释中所指出的,在Safari v9(Mac)或之前的版本中,onerror不会针对SSL / TLS连接错误进行调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接