Websocket在环回:跨区域连接不允许在MS Edge上发生错误



我有一个脚本,该脚本在loopback上使用websocket。由于网站是通过Internet和Intranet上的Websocket提供的,因此我观察到" script12017:websocket错误:Security_err,Cross Zone Connection不允许" Microsoft Edge中的跨区域连接"。我在Internet Explorer中也观察到了类似的问题。IE和MS Edge类别URL进入不同区域,每个区域都具有独特的特权,因此不允许跨区域连接。

我可以通过启用CORS(交叉原始资源共享)或CORS仅适用于来自同一区域的不同起源来解决此问题。还是在不更改客户端设备上的任何设置的情况下还有其他解决方案?

您可以在此处找到答案

Microsoft Edge不允许Websockets的Localhost Loopback

,或者您可以在命令提示符

上运行此操作

checkNetSolation loopbackexempt -a -n =" Microsoft.microsoftEdge_8wekyb3d8bbwe"

当您在浏览器JS中实例化socket.io时,请使用 127.0.0.0.1 而不是 local -Host

const socket = io("http://127.0.0.1:3000");

而不是

const socket = io("http://localhost:3000");

这可能不会回答您的问题,但对他人有用。

这里有2个更改,可以帮助我解决问题并建立Local Host Websocket连接。

  1. 在"控制面板" - Internet选项中,选择"安全性"选项卡。在"安全性"选项卡中,选择本地Intranet区域。单击站点按钮,然后在本地Intranet对话框中取消选中所有复选框。或
  2. 在"控制面板" - Internet选项中,选择"安全性"选项卡。在"安全性"选项卡中,选择本地Intranet区域。单击站点按钮,然后在"本地Intranet对话框"中的高级按钮上,将所需的网址添加到与Localhost的区域。

最新更新