プロが教えるわが家の防犯対策術!

いつもお世話になっております。
Ajaxを勉強しているのですが、prototype.jsを使用し、XMLを読み込んで
データを表示させることができず困っております。
ソースは以下の通りです。

logdate.xml
<?xml version="1.0" encoding="UTF-8"?>
<namelists>
<namelist>
<name>山田</name>
<ten>50</ten>
</namelist>
<namelist>
<name>鈴木</name>
<ten>48</ten>
</namelist>
</namelists>

hoge.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Solutoire.com Plotr &rsaquo; LineChart Example</title>
<link type="text/css" rel="stylesheet" href="style.css" />
<script src="./lib/prototype/prototype.js" type="text/javascript"></script>
<script type="text/javascript"><!--
function getFile() {
new Ajax.Request("logdate.xml", { method: "get", onComplete: displayData });
}
function displayData(httpObj) {
var XML = httpObj.responseXML;
var itemsTag = XML.getElementsByTagName("namelists");
$("result").innerHTML = itemsTag.length;
}
// --></script>
</head>
<body>
<a HREF="logdate.xml">a</a>
<form>
<input type="button" value="読み込み" onClick="getFile()">
</form>
<div id="result"></div>
</body>
</html>

結果は0となってしまいます。
ネットで調べたりしましたが、原因がつかめません。
どのようにしたらよいのでしょうか?どなたか教えてください。
宜しくお願い致します。

A 回答 (2件)

IEはレスポンスヘッダーのContent-Typeが「text/xml」でないとだめみたいです。

つまり、ローカルでは試しようがないということです。(参考URL一番最後。同じことを言っているだけですが^^;)

FireFoxの場合にサーバ経由で取得できないのはちょっと分からないですね。。。もしかしたら.xmlの場合のContent-Typeが「text/xml」じゃなくなっているとかかもしれません。

参考URL:http://kamakura.cool.ne.jp/oppama/misc/javascrip …
    • good
    • 0
この回答へのお礼

回答ありがとうございます。

text/xmlに直し、テストサーバーに上げた所できました。
ちなみにテストサーバーで
http://IP/の場合は先ほどと同じ結果でしたが、
http://サーバー名/の場合で成功でした。

本当にありがとうございました!

お礼日時:2007/08/03 14:23

おかしいですね。


質問内容のものをこちらで環境を作って再現すると 1 と表示されますよ。
同じくTagNameを、namelists => namelist へ変更すると期待通り、2 と表示されます。

ファイルパスやlogdate.xmlの文字コード、改行等をもう一度確認してみて下さい。

この回答への補足

回答ありがとうございます。

再度確認し実行してみました所、
htmlファイルをFirefoxにドラッグして実行すると期待通りの動作となるのですが、
IEの場合ですと0のままになってしまいます。
Firefoxでもtomcatを起動し、http://localhost:8080/で実行するとやはり結果は0になってしまいます。

responseTextですとデータの取得ができております。
この違いは何なのでしょうか?

ちなみにweb上に転がっているサンプルをDLして実行してもXMLの情報を取得できたためしがございません。
宜しくお願い致します。

補足日時:2007/08/03 11:40
    • good
    • 0
この回答へのお礼

Content-Typeをtext/xmlに変更し、テストサーバーで行ったところ期待通りの結果が得られました。

ありがとうございました。

お礼日時:2007/08/03 14:25

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!