これが人気のあるトピックであることは知っていますが、完全に包括的な答えをまだ見つけていません。
私は、「顧客」が Web サイトに Google マップを配置する簡単な方法を作成しようとしています。これは、顧客 (またはそのサブセット) の位置を地図上にプロットします。顧客は、PHP スクリプトによってオンザフライで XML に変換される MySQL データベースにいます (Google の例のように)。これは私の Web サイトでは問題なく動作しますが、別の Web サイトで試してみると、xmlHTTPRequest は別のドメインにあるため、PHP を見ることができません。
元のドメインの PHP ファイルを読み取るだけの別のドメインに別の PHP ファイルを書き込むことで、これを回避できます。しかし、すべてのお客様がサーバーで PHP を実行しているわけではありません。JavaScript を使用してデータベースから XML 結果を返す方法はありますか?
いくつかのポイント:
xmlHTTPRequest を作成する JavaScript は、まだサーバー上にあります。クライアントはスクリプト タグからそれにリンクしています。それで十分かもしれないと思ったのですが、「オリジン」(とにかく Chrome によると) はまだドメイン #2 として認識されています
これは素晴らしいことです。xmlHTTPRequest で絶対参照を使用すると (例: request.open('GET', 'http://mydomain.com/api/foo.php', true))、IE では失敗しますが、相対参照 ('/api/foo.php') を使用すると機能します。
よくわかりませんが、JSON を使用できますか? 「script src="http://..../someData.js?callback=some_func"」を見たことがありますが、方法がわかりません.「someData.js」をJSONのように見せますか? (私は関数の観点から非常に考えていますが、これはおそらく間違っていますか?)。
追加してみました: header("Access-Control-Allow-Origin: *"); XML を出力する PHP の先頭に移動しますが、実際にはあまり機能していません。
クライアントのサーバーで PHP ラッパーを使用する場合、単純な file_get_contents や fopen ではなく、cURL リクエストを使用する利点は何ですか?
申し訳ありませんが、多くの質問がありますが、ご指導いただければ幸いです。
多大な感謝、
マット