Я попытался проанализировать следующий ответ json с обоими JQuery getJSON и ajax:
[{"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
Затем я попробовал простой вызов get из JQuery, чтобы вернуть JSON, используя следующий код:
$.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, но eval выдает ошибки независимо от того, как я изменил JSON (заголовок типа содержимого, другие варианты формата и т. Д.)
Я пришел к выводу, что, похоже, существует проблема с возвратом HTML-кода в JSON и его анализом. Однако у меня есть надежда, что я, возможно, пропустил что-то, что позволило бы мне получить эти данные через JSON. У кого-нибудь есть идеи?