2012-05-09 7 views
0

ページfile://localhost/Users/pistacchio/dev/epress/catflow/test_html/index.htmlから、私は、IFRAMEにアクセスしようとすると、次の(CoffeeScriptの)コードを持っている:URLとフレームにアクセスするための安全でないJavaScriptの試み(同じドメイン!)

$('#ipad-viewport iframe').bind 'load',() -> 
    console.log $(this).contents().find('map') 

(これは、以下のJavaScriptに変換しますが、私は、IFRAMEのページを待つ

(function() { 

    $('#ipad-viewport iframe').bind('load', function() { 
    return console.log($(this).contents().find('map')); 
    }); 

}).call(this); 

をロードすると、その本体内の要素にアクセスしよう:私は、問題は)ここに依存しているとは思いません。 IFRAMEは次のように定義されているので、今

Unsafe JavaScript attempt to access frame with URL file://localhost/Users/pistacchio/dev/epress/catflow/test_html/catalogo/catalog/intro.html from frame with URL file://localhost/Users/pistacchio/dev/epress/catflow/test_html/index.html. Domains, protocols and ports must match. 

:私は次のエラーを取得する

<iframe src="file://localhost/Users/pistacchio/dev/epress/catflow/test_html/catalogo/catalog/intro.html" width="1024" height="768"></iframe> 

は私のページと同じドメイン内のiframe、またはその両方file://localhostませんか?なぜこの問題が発生していますか?

はああ、該当する場合、私はクローム18でこれをテストしてい

+2

file://はJS/AJAXをテストするのに最適なラッパー/プロトコルではありません。 –

+0

これはajaxリクエストではありません。サーバーサイドでの作業がないので、私はサーバー上で動作していません。 – pistacchio

+1

ちょうどそれが動作するかどうかをテストする最良の方法は、サーバーで実行する –

答えて

5

file:/// URLがホストされているコンテンツに適用され、通常のsame origin policyにわずかに異なるJavaScriptのセキュリティ・ポリシーの対象となります。保存されたWebページがディスクの内容全体を読み込めないようにするために、異なるファイルは異なる起点として認識されます。ローカルサーバーを立ち上げ、そのコンテンツをホストしてください。起源はdomain/ipで定義されている "標準"ポリシーに戻ります。

何らかの理由でWebサーバーを実行できない場合は、コマンドラインスイッチ--allow-file-access-from-filesからいくらかのマイルを得ることができます。私はこれがすべてのURLを同じ起源に属すると定義されるようにする影響を持っていると信じています。

+0

これは最終的な答えに近いものですが、 '--allow-file-from-files'スイッチにはどのような関連性があるのか​​よく分かりません。特定のブラウザですか? Java? – DigitalJedi805

+0

コマンドラインパラメータは、Chromeのためのもので、OPに応答して、彼はChrome 18を使用していると言っていました – Cheekysoft

関連する問題