• ベストアンサー

IE以外、JSON の内容を画面に表示してしまう

Rails4 と dojo で Ajax を用いて画面とサーバーで JSON のやり取りをする Web ページを開発しているのですが、 サーバーから送られてきたデータをブラウザが取得すると、 IE は Javascript で receive し、処理が実行されるのですが chrome や Firefox 、スマートフォンのブラウザでは JSON を直接画面に出力してしまいます。 このバグは何が原因でしょうか? また、どうすればIE 以外のブラウザでも JSON を正しく受信できるようになるでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

どんなスクリプトを書いたのか提示されないと、直接原因は、あなたのスクリプトにあるとしかいえません。 ブラウザでJavaScriptが実行できるようになってから現在まで、IE専用というかIE独自実装は消えたことがないので、この違いを自前で対処する(オブジェクト名の根幹が違ってたりするので、おおむねブラウザ分け記述必須となる)のは面倒なので、Jqueryなどのライブラリを使う方向になってきています。

OkamotoT
質問者

お礼

すみません。 処理を見直したところ、ajaxの通信が問題ではなくて、 Document.getElementById の引数に name を指定しており、 IE では name でも DOM が取得できますが、 それ以外のブラウザはエラーで落ちてしまう仕様の違いが原因でした。 お騒がせしました。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 適切なContent-Typeのヘッダーを出力していますか? jsonの場合 application/json となります。 違っていたらすみません。

関連するQ&A

  • IEでJSONが読み込めない

    IEでJSONが読み込めないので、以下のサイトのソースをそのまま持ってきて動かしてみましたが、読み込めませんでした。 http://www.outcut.de/MooFlow/example-ajax.html なので多分プログラム自体には問題がないのだと思うので、サーバの設定か何かかなと予想されるのですが、IEでJSONを読み込ませるために何かサーバの設定をしなければならないのでしょうか? ご教授ください。よろしくお願いいたします。

    • ベストアンサー
    • AJAX
  • RailsでJSONを使用して画面作成

    環境はRuby1.9.2、Rails3.1です。 Webアプリを作る勉強をしているのですが、 JSONを返してそのデータを利用して画面を作成しようと思っています。 Rails側はDBから取得したデータをto_jsonでJSON形式に変換して respond_toで返してあげればいいんですよね? UI側はこのデータを利用して構築するにはDOMでがりがり組むしかないんでしょうか? イメージがいまいちつかめません…… 参考になる書籍やサイト等もしご存知であれば教えてください。 これはRubyというよりjavascriptのカテゴリになるんでしょうか。 もしそうであるなら申し訳ありません。 よろしくおねがいします。

    • ベストアンサー
    • Ruby
  • $.getJSONにJSON.stringifyを

    $.getJSONに、JSON.stringifyした結果を指定したいのですが、どうすればよいでしょうか? ■現状 ・コンソールにJSONは出力されているのですが、$.getJSONでこのファイルを指定しても、画面真っ白です ▼index.html <script type="text/javascript" src="hoge.json"></script> <script type="text/javascript"> $.getJSON('hoge.json', function(data) { ▼hoge.json var obj =([ [略], ]); var json_text = JSON.stringify(obj); // テスト出力 console.log(json_text); ■質問 ・$.getJSONにこの出力結果(json_text)を指定するためには、どうすれば良いでしょうか? ・一旦ファイル出力しなければいけないのでしょうか? ・どうやるのでしょうか? ・AJAXでサーバ側へデータを渡してファイル出力した後、$.getJSONでその出力したファイルを指定するしかない?

  • Javascriptで各ブラウザを厳密に区別する方法

    JsvascriptでIE,FireFox,Safari,Opera,Chromeのそれぞれのブラウザを厳密に区別する方法が知りたいです。 それが困難な場合はIE/FireFoxとその他のブラウザを区別する方法がわかれば構いません。 最近Javascriptを触っていませんが2008年後半から今までで何かJavascriptで変化したことはあるのでしょうか? 2007年はAjaxというものが出てきましたが、その後 目新しいものがあったでしょうか?それとも今は減少中?

  • JQuery+JSONでChromeでローカル表示ができない?

    JQuery+JSONでChromeでローカル表示ができない? http://image.gihyo.co.jp/assets/files/design/serial/01/jquery-site-production/0019/demo19-1.html 上記ページのサンプルをローカル上で検証しています。 safari、firefoxなどは問題なくサンプル通りの挙動なのですが、Chromeは表示されません。 試しにWeb(http)上にアップするとChromeも問題ありません。 これはブラウザの仕様なのでしょうか。Chromeのローカルで確認できるような記述方法があるのでしょうか。 宜しくお願いします。

  • IE8で白い画面になるのですが、直せますか?

    こんばんは、今回はブラウザの IE8(インターネットエクスプローラー8)の不具合?について 質問させて頂きます。 最近、特にいじったようなわけではないのに IE8を開くと以下の様になってしまって困っています。 もし単なるフリーズなら、 IE8を消してから開きなおすか PCを再起動してしまえば大体直るのですが、 これはどちらを行っても直らないのです… 白画面と言っても固まっているわけではなく、 「お気に入り」のサイトの名前欄は何回も開けます。 ですが、欄が開けるだけで サイト名を押しても反応せず、 yahoo japanと表示された白画面のままです 更新ボタンも押せますが更新されません。 (ボタンはちゃんとポチッとなります) 上のURL入力部分に別サイトのURLを入れて エンターを押しても反応無しです。 この症状は以下のどれにあてはまるのでしょうか? (1)yahoo japanをホームにしていたためのバグ (2)yahoo japanとは関係ないIE8のバグ (3)IE8とは関係ない自分のPCの不調。 以前同じような症状になった方や、 解決法をご存知の方がいましたら 教えて頂けると助かります。 ※IEが使えないので  この質問はfirefoxのブラウザで行っています

  • IE9 表示できないサイトについて

    OS : Windows7 ブラウザ : Internet Explorer 9 先日IE9でウェブサイトを観覧していると、 FireFoxでは問題なく見れるサイトが見れない症状がありました。 普段使っているFireFoxでは何の問題もなかったため気になり質問させてもらいました。 下記URLは某パチンコ店の情報サイトです。 症状ですが、http://www.tamaya777.com/login.php3 を参考にしますと、 サイトのログイン画面までは正常なのですが、ログイン後各店舗へのジャンプリンクがあります。 その店舗へ移行しようとリンクをクリックすると、 ページはもとのログイン前のTOP画面になってしまいます。 FireFoxやスマホのブラウザでは問題ないのですが・・・ javaやphpなどで作られたサイトではIEのバグがあると聞いたことがあるのですが・・・ IEの設定は標準設定です。 お分かりの方いましたら、ぜひお知恵を貸していただければと思います。 宜しくお願いいたします。

  • IEでのエラーについて(javascript)

    http://w-x-w.com/2011/07/09/156 上記のサイトのサンプルコードを参考に、HTML5とJavascript、phpによるMySqlへの接続を行っています。ChromeやFirefoxでは正常に動作をするのですが、IEだと動作がうまくいきません。 エラーを辿ったところ、 -----略------------ function search_json(){ var get_json = eval("("+search_msg_data+")"); if(get_json.results == null){ $("#search_data").html("該当するデータは見つかりませんでした。"); } ---------------------- この中のevalのところでエラーが出ているようです。IEでそのエラーが出ているという情報は、サイトを回っていて分かったのですが、今回の場合の対応策が見つかりませんでした。IEでも通る方法が分かる方がいましたら、ぜひ教えてください。 OS: Windows 7 IEのバージョン: 9

  • 【IE】インターネットイクスプローラーが表示されませんが、どうやって治せばいいんでしょう?

    IEのアイコンをダブルクリックします。 するとタスクバーにはIEが起動された表示が出ます。 しかし、最大化を押しても最小化を押して再度挑戦してもブラウザの画面がまったく表示されません。 タスクマネージャのプロセスやアプリケーションでも起動がしっかり確認されています。 つまり起動しているわけですが、画面が出てきません。 何度挑戦しても治りません、解像度を変えてみたりモニターを変えてみたりしましたが表示されません。 幸いスレイプナーをいつぞやインスコしておいたお陰でネットには接続できました。しかし、もしブラウザがIEしかなかった時の事を考えただけで、誰にも質問できなくなり完全に詰みます、恐ろしいです。 今は結構評判の良かったfirefoxを使っていますのでネットに繋げる分にはまったく問題ありません、が。 最近ブラウザからログインしてブラウザ上のアイコンをクリックしてランチャーを起動するゲームが出てきたわけです。 firefoxだとログインができません。 ゲーム運営側の手抜きでしょうが、フリーのブラウザは沢山あるわけで異常がないかいちいちチェックしていては運営側も大変だろうと思われるのでクレームは付けていません。 とりあえずIEが使えるようになりたいんですよ、どうしてもやりたいゲームがあるわけです。 ちなみに、firefoxのIEタブをプラグインしてもダメでした。 このバグみたいなものの対処が分かる方いらっしゃったら是非回答下さい。

  • javascriptでJSONデータの生成方法

    現在PerlのフレームワークであるMojoliciousとJavascriptのjQueryを使ってAjaxを利用したアプリケーションを作ろうとしているのですが、クライアント側で、サーバに送信するためのJSON形式のデータがうまく作れません。 例えば、ブラウザ上の表のセルをダブルクリックしたときにそのデータを書き換えられるようにし、その更新データをJSONでサーバ側に送りたいのですが、 <table> <tr><th>name</th><th>email</th></tr> <tr><td class="name">山田</td><td class="email">yamada**@gmail.com</td></tr> </table> とある表のセルの山田のアドレスをyamada**@gmail.com -> yamada**@yahoo.co.jpと変更した場合、javascript(jQuery)で次のようなJSONデータを作りたいです。 { "email" : "yamada**@yahoo.co.jp"} 左側のemailは動的にセルのclass属性から取得したいのですが、方法が分かりません。 実際にはemail以外にも多数の列がありますので、なるべく動的にclass属性を取得したいのですが、良いJSONの生成方法やJSONを用いた他のデータ構造があれば教えていただきたいです。

専門家に質問してみよう