xmlHttpRequestでContent-Typeが普通じゃない時
ちょっとMovable TypeのAtomAPIをAjaxしてみたくてやってみた。Operaでテストしていたらすぐ動いて簡単じゃんと思ったらIEではリクエストはOKでレスポンスが拾えない。よく見たら、レスポンスのContent-Typeが問題だった。Atomだとapplication/x.atom+xml
なんですね。Opera以外のブラウザだとtext/xml
かapplication/xml
でないとresponseXML
がパースできない。
普通だったらサーバーサイドでContent-Typeをうまいこと変えてやるんだろうけど、外部ドメインのAPIでもないのにPROXY的なものは挟みたくないし、かと言ってmt-atom.cgiには手を加えたくないし…
と思ったら、こんな方法があったんですね。てかなんで今まで知らなかったんだ!?
if (window.ActiveXObject) { var xml = new ActiveXObject("Microsoft.XMLDOM"); xml.async=false; xml.loadXML(http.responseText); }
ちょっと感動しました。Mozilla系ではどうすればいいのかな。