メイン

2010年05月25日

JavaScript の読み込みによって異なるサーバのスクリプトを実行する方法

JavaScript の読み込みによって異なるサーバのスクリプトを実行する方法です。

下記英語サイトが非常に参考になりました。

Cross-domain gif request with javascript

GoogleAnalytics の手法と同じとのことなので間違いないでしょう。

上記ページより私が行いたかった方法の方が簡潔だったので書き直します。コールバックの部分とかも省いているのでレベルを下げていると考えていただいて構いません。

まず、サーバ上の JavaScript を読み込ませます。

<script src="http://domain.jp/cross.js" type="text/javascript"></script>

crossRequestSender.js は簡潔に下記のようになります。

var img = new Image();
img.src="http://domain.jp/cross.gif";

※ js と gif が異なるサーバ、と言う意味ではなく、JS読み込みタグを埋め込んでいるHTMLファイルが異なるサーバに配置されていることを想定しています。

で、http://domain.jp/ に下記のように mod_rewrite を設定した .htaccess ファイルを配置します。

RewriteEngine on
RewriteRule ^cross.gif$ /cross.php [L]

以上で cross.php が実行されます。同じ cross と言う名前を利用しましたが、js ⇒ gif ⇒ php とバトンが引き継がれていったことを確認できるかと思います。