まずは以下のURLを開いてみてください。ブラウザで XML が開きます。
http://ws.bzen.net/pgtop/pref.xml
・Internet Explorer で表示した場合
・Firefox で表示した場合
この XML はこれまでに使った pref.xml を、サーバー上にアップしただけです。世界中からアクセスすることができます。このような XML や RSS の形で公開されているデータは、他のコンピュータで利用することができます。
今回の XML はシンプルな例ですが、外部のドメイン上にあるこの pref.xml を取り込めるようになると、いろんなWebサービスに応用できます。
【1】sample003 フォルダをコピーして sample004 フォルダを作成します。
コピーしただけなので、この段階では同一ドメイン内の pref.xml を読み込みます。もちろん正常に動作します。
【2】sample004 フォルダを開き、「pref.xml」を削除します。
【3】最終的に今回は以下のようなファイルの構成になります。
【4】次は pref.js の一部を変更します。
pref.xml
↓
http://ws.bzen.net/pgtop/pref.xml
変更はたったこれだけです。では動作を確認してみましょう。
【5】C:\phpdev にある「2K-NT-XP-phpdev_start.bat」をダブルクリックして、phpdev を起動します。
【6】Firefox を起動して、アドレスに以下のように入力し実行します。
http://localhost/ajax/sample004/pref.html
【7】「データ取得」ボタンをクリックします。
【8】しかし処理が進みません。
原因は他のドメインにあるファイルを取得しようとしているからです。localhost から見るとインターネット上のドメインは全て他のドメインとなります。
非同期通信で取得できるのは、プログラムと同一ドメイン内にあるファイルに限られます。他のドメインのファイルを扱うには、『中継プログラム(スクリプト)』を使う必要があります。中継プログラムについては次回に説明します。
【ワンポイント】
Internet Explorer の場合は、他のドメインに接続しようとすると、以下のようなメッセージが表示されるので、「はい」ボタンをクリックします。
Internet Explorer ではデータが表示されますが、これはローカル環境で動作確認しているからです。実際にレンタルサーバーなどにアップすると、表示できなくなります。
やはり中継プログラムが必要なのです。