0

JQuery の「ロード」コマンドを使用して、ある HTML ファイルを別の HTML ファイルにインポートする必要があるページに取り組んでいます。サイト ヘッダーのコンテンツ (ロゴ画像、検索ボックス、メニュー バー) を取り込む、かなり単純なものにする必要があります。

私のテスト ページでは機能しますが、ライブ ストアフロントでは機能せず、その理由がわかりません。

これが私のJSファイルの行です-非常に簡単です:

$("#x-head").load('http://www.sunandfuninoc.com/testingsites/jxinstalls/topparts/ebay/head.html');

作成する必要がある HTML div は、私のメイン ページでは次のようになります。

見事に機能しているテスト ページは次のとおりです

まったくロードされていないライブ サイトは次のとおりです: http://stores.ebay.com/Top-Parts-Store

何か案は?ありがとう!

4

3 に答える 3

3

これは、JavaScript が動作するオリジン ポリシーと同じためです。

サーバーが明示的に許可している場合を除き、AJAX を使用している場合、別のリモート サーバー (つまり、実行しているサーバー以外) からコンテンツを取得することはできません。

http://en.wikipedia.org/wiki/Same_origin_policy

呼び出しているサーバーがクロスドメイン呼び出しを許可していない限り、唯一のオプションは、jQuery 経由ではなく、サーバー側のプロキシ経由でページをロードすることです。たとえば、cURL経由の PHPです。通常、サーバー側の言語はこの制限を受けません。

于 2012-07-31T21:54:14.277 に答える
1

あなたが行っているリクエストは、それがホストされているウェブサイトと同じドメイン上にあるため、最初のケースで機能します。2 番目のケースでstore.ebay.comは、リクエストを行っていますが、最新のブラウザのセキュリティ機能により、そのクロス ドメイン リクエストは許可されていません。

于 2012-07-31T21:53:33.803 に答える
0

1. load();使用しているURLが同じドメインにある場合に機能します。

2.プロキシを使用するなどの外部コンテンツをロードするstore.ebay.com場合、PHPを使用している場合は、cURLを使用してそのサイトからソースを取得するPHPファイルを作成できます。そうしないと、ルールの目的を達成できなくなりますAccess-Controll-Allow-Origin(つまり、ドメインにない外部コンテンツを読み込むことができます)。

于 2012-07-31T21:55:50.480 に答える