0

私は簡単な機能を持っています:

function goCV(what){ //'what' = htm filename 
  $('#cv_load_entry').load("http://<domain_name>/" + what);
}

ファイルがローカルである場合、関数は正常に機能します(私のマシン上で相対参照を使用するか、サーバー上のリンク元ファイルと同じディレクトリ内にある場合)。しかし、絶対参照 (を使用http://domain_name/filename.htm) を使用しようとすると、機能しません。Firebug は GET を赤で表示します (ただし、ヘッダーを読んで認識できる問題が何であるかはわかりません)。

相対参照を使用してサーバーからスクリプトを実行するときに Firebug で成功した GET 情報を表示すると、ファイル名変数の前に「http」部分が追加されて送信されたものとまったく同じ完全な URL が表示されます。

私は困惑しています。

PS:私は使用していますhttp://code.jquery.com/jquery-latest.js

更新: これはクロスドメインの問題であると思われます。なぜ jquery .load() が外部 Web サイトからテキスト ファイルをロードしないのですか?にある proxy.php のアイデアを試してみます。

問題が解決しました:http://christianheilmann.com/2010/01/10/loading-external-content-with-ajax-using-jquery-and-yql/

4

2 に答える 2

1

ほとんどの場合、クロスドメインの問題です (ドメインを Web ページと同じドメインに変更することでテストできます。スクリプトが機能し始めるはずです)。リモート サーバーを制御している場合、またはリモート AJAX 要求をサポートしている場合は、CORSまたはJSONPを使用してデータにアクセスできます。それ以外の場合は、プロキシが必要になります。

于 2013-09-04T20:30:51.913 に答える