5

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++;
}
4

1 に答える 1

4

これは、ページがホストされている外部ドメインへのアクセスを禁止するセキュリティ ポリシーを適用しているブラウザによって発生します。
これは、SSL エリアから非 SSL および別のドメインへの重要な接続を取得しようとしているシナリオで発生します (同じドメインで問題が解決するかどうかはわかりません) - それがあなたのケースです。しかし、これにはさらに多くのシナリオが考えられます。

これはブラウザー関連のエラーで、このエラーをスローするのはブラウザーであり、接続自体には問題はありません。

http サーバーと同じドメインで WebSocket サーバーをホストする必要があります。それが不可能な場合は、いくつかの方法があります。

  1. ソフトウェアが社内で使用され、ブラウザでの設定が使用できる場合は、クロスドメイン セキュリティ ポリシーを無効にできます。
    • Firefox の「about:config」の下で、「ecurity.fileuri.strict_origin _policy」を「false」に設定します。
    • Chrome、フラグ「--allow-file-access-from-files」で実行
  2. ドメインの DNS 設定にアクセスできる場合は、サブ フォワーダーを作成すると、同じドメインに接続しているように見えます。実際にはこのオプションについてはわかりませんが、うまく見えます。
于 2012-04-26T15:37:38.507 に答える