我有一个在环回上使用websocket的脚本。由于网站是通过互联网和内部网上的websocket提供的,我在Microsoft Edge中观察到“SCRIPT12017:WebSocket错误:SECURITY_ERR,不允许交叉区域连接”。我也在Internet Explorer中发现了类似的问题。 IE和MS Edge将URL分类到不同的区域,每个区域都具有唯一的权限,因此不允许跨区域连接。
我可以通过启用CORS(跨源资源共享)来解决此问题,或者CORS仅适用于来自同一区域的不同来源。 或者在没有更改客户端设备上的任何设置的情况下是否有任何其他解决方案?
答案 0 :(得分:1)
你可以在这里找到答案
Microsoft Edge does not allow localhost loopback for websockets
或者您可以在命令提示符
上运行它CheckNetIsolation LoopbackExempt -a -n =“Microsoft.MicrosoftEdge_8wekyb3d8bbwe”
答案 1 :(得分:0)
在浏览器js中实例化socket.io时,请使用 127.0.0.1 代替 localhost 。
const socket = io("http://127.0.0.1:3000");
代替
const socket = io("http://localhost:3000");
答案 2 :(得分:0)
这可能不会回答您的问题,但对其他人有用。
这里有2个更改可以帮助我解决问题并建立localhost WebSocket连接。