FirefoxのコンソールでSecurityError: The operation is insecure
というエラーが表示されます。AJAXで何かを読み込もうとすると、罪があるのはHTML5機能です:window.history.pushState()
です。一部のデータをロードすることになっていますが、エラーが発生するとJavascriptの実行が停止します。
なぜこれが起こっているのだろうかと思っています。これはサーバーの設定ミスですか?任意の助けをいただければ幸いです。
更新:はい、ドメイン名が一致しないサーバーエラーでした: http://en.wikipedia.org/wiki/Same-Origin_policy
Same Origin Policy に従っていることを確認してください。これは、同じドメイン、同じサブドメイン、同じプロトコル(http vs https)および同じポートを意味します。
pushStateは潜在的なコンテンツの偽造からどのように保護しますか?
編集:@robertcが彼のコメントで適切に指摘したように、Originがfile:///
である場合、一部のブラウザーは実際にわずかに異なるセキュリティポリシーを実装します。言うまでもなく、file:///
を使用してローカルでテストすると、ページが異なるOriginから実行されていると予想される場合に問題が発生する可能性があります(したがって、pushState
はlocalhostシナリオではなく、本番Originシナリオを想定しています)
SecurityError:The operation is insecureユーザーがサイトにアクセスする前にCookieを無効にした場合、セッションを使用しようとする後続のXHRリクエストは明らかに失敗し、このエラーが発生します。
フォルダーエクスプローラーメソッド(つまりfile://
)でファイルを開かないで、http://
(http://yoursite.com/
からのhttp://localhost/
)からファイルを開いてください。
私の場合、「www」が見つかりませんでした。私が押していたURLから。完全に一致する必要があります。www.test.com
で作業している場合は、www.test.com
ではなくtest.com
にプッシュする必要があります
Javascriptの「物理」アドレスを指定せずにファイルから別のjavascriptファイルを呼び出すと、同じ問題が発生しました。 HTMLから同じ方法で呼び出すことで解決しました。例:「archivo.js」ではなく「JS/archivo.js」
PWAの作成時に、https以外のサーバーで使用されるサービスワーカーもこのエラーを生成します。