0

host.html と test.html という名前の 2 つの html ファイルがありますが、一生懸命試しましたが、host.html の mydiv のコンテンツとして test.html ファイルをロードできません。

$("#myDiv").load("test.html");

しかし失敗します。次に、次の ajax メソッドを使用してファイルを取得しようとしました。

$.ajax({
  type: "GET",
  url: "test.html",
  error: function (xhr, statusText) { alert("Error: " + statusText); },
  success: function (msg) { alert("Success: " + msg); }
});

しかし悲しいことに、私はいつもエラーに遭遇しています! host.html と test.html の両方が同じフォルダーにあります。私は何を間違っていますか?! 助けてください

乾杯!

4

1 に答える 1

0

これを引用:Origin null is not allowed by Access-Control-Allow-Origin

Origin null はローカル ファイル システムであるため、file:/// URL を介してロード呼び出しを行う HTML ページをロードしていることを示唆しています (たとえば、ローカル ファイル ブラウザなどでダブルクリックするだけです)。同一オリジン ポリシーをローカル ファイルに適用する方法は、ブラウザごとに異なります。

私の推測では、Chrome を使用してこれを見ていると思います。SOP をローカル ファイルに適用するための Chrome のルールは非常に厳しく、ドキュメントと同じディレクトリからファイルをロードすることさえできません。オペラもそうです。Firefox などの他の一部のブラウザでは、ローカル ファイルへのアクセスが制限されています。しかし、基本的に、ローカル リソースで ajax を使用しても、クロスブラウザーでは機能しません。

ローカル ファイルを使用するのではなく、実際に Web に展開する何かをローカルでテストするだけの場合は、単純な Web サーバーをインストールし、代わりに http:// URL を介してテストします。これにより、より正確なセキュリティの全体像が得られます。

于 2013-07-21T00:43:26.140 に答える