2006年02月25日

XMLHTTPRequest で XML を扱うとき

Safari でいわゆる Ajax を使って、ブラウザの画面遷移なしに最新データを読み込んだり、更新データを送信したりする仕組みを作っています。

XmlHttpRequest に XML を受信させ、responseXML で取り出そうとしても、undefined となりうまく動いてくれません。responseText ではちゃんとデータが受信できているのですが。データのフォーマット、文字コード、改行コード、GET/POSTなどありとあらゆるものを試しましたが解決しません。

ふと思い立って、XmlHttpRequest に対してサーバから返ってくるヘッダを見ると、Content-Type: text/html となっています。Apache で .xml のついた静的ファイルを送りだす時は、Content-Type: text/xml となるのですが、PHP/Smarty を使って、テンプレートで XML を生成しているため、html のヘッダがついたようです。

Smarty のテンプレートに、強制的に Content-Type: text/xml のヘッダを送信するように書き加えたところ、ちゃんと responseXML で XML が取り出せるようになりました。


posted by Kojima at 14:19| Comment(0) | TrackBack(1) | Ajax | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック

AmazonECSとPHP
Excerpt: PHP+AjaxでAmazonECSをつかうのに大変参考になりました。ありがとうございました。
Weblog: mashbook管理人のログとおしらせ
Tracked: 2006-07-13 07:06
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。