2012-11-12 17 views
31

Firefoxのコンソールでこのエラーが発生しました:SecurityError: The operation is insecureとAJAXで何かをロードしようとすると、有罪はHTML5の機能:window.history.pushState()です。それはいくつかのデータをロードするはずですが、Javascriptはエラーで実行を停止します。SecurityError:操作が安全でない - window.history.pushState()

なぜこのようなことが起こっているのでしょうか。これはサーバーの設定ミスですか?どんな助けもありがとう。

UPDATE:はい、それはドメイン名が一致しないとサーバーエラーだった:http://en.wikipedia.org/wiki/Same-origin_policy

+4

あなたは 'file:///' URLにアクセスしていますか? – robertc

+0

@robertcあなたはどういう意味ですか?それはいつも 'http://'です。私はそれがサブドメインの使用のためかもしれないと思うが、 'pushState'は'/'だけを押しようとするので、影響はないはずです。 – Atadj

+0

私はちょうど確認していた... – robertc

答えて

27

あなたがSame Origin Policyを以下のしていることを確認します。これは、同じドメイン、同じサブドメイン、同じプロトコル(httpとhttps)、同じポートを意味します。

How does pushState protect against potential content forgeries?

EDIT:@robertcが適切に彼のコメントで指摘したように起源がfile:///ときに、一部のブラウザでは、実際にはわずかに異なるセキュリティポリシーを実装します。もちろん、file:///でローカルでテストするときに問題が発生することはありません(pushStateはローカルホストのシナリオではなく、生産元のシナリオを想定しています)

2

私の場合、私は 'www。 '私が押していたURLから。それはあなたがwww.test.comで作業している場合、あなたはwww.test.comにプッシュしなければならない、完全一致でなければならないtest.com

2

あなたは試してみて、フォルダ・エクスプローラ法(すなわちfile://)でファイルを開くが、http://から、そのファイルを開く必要があります(つまり、http://yoursite.com/からhttp://localhost/

0

javascriptの「物理」アドレスを入れずに別のjavascriptファイルをファイルから呼び出すと、同じ問題が発生しました。 私はたとえば、HTMLから同じようにそれを呼び出すことによってそれを解決:代わりに「archivo.js」の「JS/archivo.js」

2

を私たちはとSecurityErrorを経験した:ユーザーがクッキーを無効にした場合の動作は安全ではありません私たちのサイトにアクセスする前に、セッションを使用しようとする後続のXHRリクエストが失敗し、このエラーが発生することは明らかです。

+0

どのようにこの問題を解決しましたか? –

関連する問題