【PHP/jQuery】jQueryのgetJSONメソッドがIEで動作させられなかった

クライアントサイド:json.html
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">

function hoge(){
$.getJSON("json.php", {hoge: "hoge"}, function(data){
document.getElementById("test").innerHTML = data.hoge;//本当はセレクターで$("#test")と書くべき
});
}
</script>
</head>
<body>
<h1>hoge</h1>
<div id="test"></div>
<input type="button" value="Submit" onClick="hoge();">
</body>
</html>

サーバサイド:json.php
<?php
$hTest = array('hoge' => 'aaaaaa');
echo json_encode($hTest);
?>

としていたとします。

これだとFireFox、Safariだと動くのになぜかIEだけは…

調べてみるとサーバサイドでjson形式でデータを送るときにヘッダー情報として

「json形式でデータを返しますよ」

と明示してあげないとダメみたい

なので

header('Content-type: application/json; charset=UTF-8');

の一行をサーバサイドのjson.phpに追加してあげるとできます

サーバサイド:json.php
<?php
header('Content-type: application/json; charset=UTF-8');
$hTest = array('hoge' => 'aaaaaa');
echo json_encode($hTest);
?>

こうすることでIEでもjQueryのgetJSONメソッドが使えます

そもそもヘッダーつけるのうっかり忘れたのが原因でハマったのでメモしておきます
コメント (0)
コメントの投稿
トラックバック (0)
前のページ(【C++】Apache Moduleを作る際のMakefile)
プロフィール

6rats

Author:6rats
こんにちは、都内のベンチャー企業で働くWebエンジニアです
主に自分の周りで起きた技術的なことをメモとして書き残して行きます。
最近Androidアプリの開発を始めました。Androidアプリ開発ネタを中心ににRuby,Rails関連、たまにPHP,git,HTML/CSS関連のことも書いたりします
不動産投資なんかもかじってます。趣味でロードバイク、スキーやってます。

Google AdSense
最新記事
Bookmark
カテゴリ
未分類 (12)
C/C++ (6)
PHP (16)
Item (3)
Ruby (31)
git (3)
MySQL (1)
日記 (0)
近況 (5)
雑記 (2)
vim (2)
html (1)
solr (1)
mecab (1)
Linux (1)
Rails (1)
Android (4)
tweets
RSSリンクの表示
リンク
このブログをリンクに追加する
ブロとも申請フォーム

この人とブロともになる

月別アーカイブ