訳あってJavaScriptからサーバの環境変数を取得する必要がありました。こんなの簡単だろう…と思ったら、単純には取得できないらしい…orz 理屈から言えばJavaScriptはクライアント側で動作するのでサーバの環境変数は取れないらしい。ネットで調べると結構皆さん苦労されているようでした。
他の方法も考えられないでは無いのですが出来ればJavaScriptで取得したいと思って色々検討した結果、以下の手順を思いつきました。
1) PHPで環境変数を取得してPHPの変数に格納
2) JavaScriptからPHPの変数を取得
PHPはサーバ側で動作することもあって環境変数は全く問題無く取得できます。JavaScriptからPHP変数の値が取得できれば出来るはずです。でとりあえず動作したのでここに書いておきます。htmlの中に以下のようにPHPとJavaScriptを記述して実現しました。
<?php
$addr = $_SERVER['REMOTE_ADDR'];
?>
<script type="text/javascript">
jaddr = "<?= $addr ?>";
document.write("address = " + jaddr);
</script>
ここでは環境変数REMOTE_ADDRを取得しています。なおPHPが先でJavaScriptを後に記述しないと順番があるのでうまく動作しません。まあ釈然としない部分はあると思いますがまずは目的クリアの為にはこういう方法もあると言うことでご参考まで。