会社の某部署に、やたらと新しいモノ好きな人がいて、時として“チャレンジャーさん”であり、はたまた“困ったチャン”でもある。
IE7の正式版が出ると、さっさく“仕事で使っているPC”にインストール。試用後にアンインストールしてくれるのならそれで良いのだが、困ったことに「これは良いぞ!」とIE7を周辺の人に勧めているらしい。
で、さっそく間接的に私のところに「イントラの○○○がおかしい」と連絡が入った。“チャレンジャーさん”のお陰でIE7が広まる前に発見できた事は良いことなのか?
この場合「IE7を使わないでください」と言い切っても良いのだが、私の“チャレンジャー魂”に火がついて問題解決に取り組むことにした。
しかし、どこに問題があるのか、ひとつひとつ穿り返しても、さっぱり分からん。
問題が起きたところはRSSファイルを読んでいる処理。
「セキュリティの問題ではないのか」とネットワーク担当者に問いかけ、調査してもらったが特に見つからない。
不思議なことに同一サーバのRSSファイルなら正常に読め、別サーバのRSSファイルが読めない。しかし、RSSファイルを読むスクリプトを単体で動かすとXML形式で取ってきてくれている。
同一サーバのRSSファイルを読む場合はJavaScriptにそのファイル名を記述、別サーバの場合はスクリプト(PHP)を記述。その違いだけなんだが…
RSSファイルを取ってくるスクリプトをJavaScriptから実行すると上手くいかないのか?
以前テスト的に作った何本かのスクリプトを眺めてみると…
「もしかしたら?」
さっそく試してみた。
あっさり解決。
うーん、こんなことが問題になるとはIE7の“仕様”は厳しいぞ。
<?php
$array = file(‘http://hoge.hogehoge.com/hoge/hoge.xml’);
$filenaiyou = join(“”,$array);
header(“Content-type: application/xml; charset=utf-8”);
echo $filenaiyou;
?>
解決策は「headerを付ける」でした。