JQuery getJSON と ajax の両方を使用して、次の json 応答を解析しようとしました。
[{"iId":"1","heading":"Management Services","body":"<h1>Program Overview</h1><h1>January 29, 2009</h1>"}]
また、次のように「/」文字をエスケープしてみました。
[{"iId":"1","heading":"Management Services","body":"<h1>Program Overview <\/h1><h1>January 29, 2009<\/h1>"}]
getJSON を使用すると、コールバックが実行されません。そこで、次のように JQuery ajax で試してみました。
$.ajax({
url: jURL,
contentType: "application/json; charset=utf-8",
dataType: "json",
beforeSend: function(x) {
if(x && x.overrideMimeType) {
x.overrideMimeType("application/j-son;charset=UTF-8");
}
},
success: function(data){
wId = data.iId;
$("#txtHeading").val(data.heading);
$("#txtBody").val(data.body);
$("#add").slideUp("slow");
$("#edit").slideDown("slow");
},//success
error: function (XMLHttpRequest, textStatus, errorThrown) {
alert("XMLHttpRequest="+XMLHttpRequest.responseText+"\ntextStatus="+textStatus+"\nerrorThrown="+errorThrown);
}
});
ajax でエラーが発生し、次の警告が表示されます。
XMLHttpRequest=[{"iId":"1","heading":"Management Services","body":"<h1>Program Overview </h1><h1>January 29, 2009</h1>"}]
textStatus=parseerror
errorThrown=undefined
次に、次のコードを使用して JSON を返す単純な JQuery get 呼び出しを試みました。
$.get(jURL,function(data){
var json = eval("("+data+");");
wId = json.iId;
$("#txtHeading").val(json.heading);
$("#txtBody").val(json.body);
$("#add").slideUp("slow");
$("#edit").slideDown("slow");
})
.get は JSON を返しますが、JSON をどのように変更しても (コンテンツ タイプ ヘッダー、その他の形式のバリエーションなど)、eval でエラーが発生します。
私が思いついたのは、JSON で HTML を返し、それを解析する際に問題があるように見えるということです。ただし、JSON 経由でこのデータを取得できるようにする何かを見落としている可能性があることを願っています。誰にもアイデアはありますか?