gpt4 book ai didi

firefox - 跨域 Websocket 连接导致 NS_ERROR_DOM_SECURITY_ERR

转载 作者:行者123 更新时间:2023-12-02 13:36:27 24 4
gpt4 key购买 nike

我正在尝试从 Trial.domain.com 连接到 server.domain.com 上的 WebSocket

Firefox 中的 NS_ERROR_DOM_SECURITY_ERR:

"[Exception... "Security error" code: "1000" nsresult: "0x805303e8 (NS_ERROR_DOM_SECURITY_ERR)" location: "https://trial.domain.com/home Line: 454"]"

当我尝试建立 WebSocket 连接时:

try {
if (window['MozWebSocket'] !== undefined) {
socket = new MozWebSocket('ws://server.domain.com/chat');
} else {
socket = new WebSocket('ws://server.domain.com/chat');
}
trails = 0;
} catch(err){
trials++;
}

最佳答案

这种情况是由应用安全策略的浏览器发生的,该策略阻止对页面自行托管的外部域进行任何访问。
当您尝试从 SSL 区域到非 SSL 和另一个域(不知道同一域是否可以解决问题)获得重要连接时,会发生这种情况 - 这就是您的情况。但这种情况还有更多可能的情况。

这是与浏览器相关的错误,并且是浏览器抛出此错误,并且自身连接没有问题。

您必须将 WebSockets 服务器托管在与 http 服务器相同的域下。如果这是不可能的,您可以采取以下几种方法:

  1. 如果软件是内部使用,并且可以在浏览器中进行设置使用,那么您可以禁用跨域安全策略:
    • Firefox,在“about:config”下将“ecurity.fileuri.strict_origin _policy”设置为“false”。
    • Chrome,使用标志“--allow-file-access-from-files”运行
  2. 如果您有权访问您所在域的 DNS 设置,则可以创建子转发器,并且看起来您正在连接到同一域。不确定这个选项在实践中是否有效,但看起来不错。

关于firefox - 跨域 Websocket 连接导致 NS_ERROR_DOM_SECURITY_ERR,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10332564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com