- ベストアンサー
IE以外、JSON の内容を画面に表示してしまう
Rails4 と dojo で Ajax を用いて画面とサーバーで JSON のやり取りをする Web ページを開発しているのですが、 サーバーから送られてきたデータをブラウザが取得すると、 IE は Javascript で receive し、処理が実行されるのですが chrome や Firefox 、スマートフォンのブラウザでは JSON を直接画面に出力してしまいます。 このバグは何が原因でしょうか? また、どうすればIE 以外のブラウザでも JSON を正しく受信できるようになるでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
どんなスクリプトを書いたのか提示されないと、直接原因は、あなたのスクリプトにあるとしかいえません。 ブラウザでJavaScriptが実行できるようになってから現在まで、IE専用というかIE独自実装は消えたことがないので、この違いを自前で対処する(オブジェクト名の根幹が違ってたりするので、おおむねブラウザ分け記述必須となる)のは面倒なので、Jqueryなどのライブラリを使う方向になってきています。
その他の回答 (1)
- LancerVII
- ベストアンサー率51% (1060/2054)
回答No.2
こんにちは。 適切なContent-Typeのヘッダーを出力していますか? jsonの場合 application/json となります。 違っていたらすみません。
お礼
すみません。 処理を見直したところ、ajaxの通信が問題ではなくて、 Document.getElementById の引数に name を指定しており、 IE では name でも DOM が取得できますが、 それ以外のブラウザはエラーで落ちてしまう仕様の違いが原因でした。 お騒がせしました。