отсутствует] после разбора списка элементов JSON - PullRequest
8 голосов
/ 26 апреля 2009

Выполнение этого:

$.post(
"/url/to/method",
{ },
function(data){
    var obj2 = eval("("+$(data).children()+")");
    // OR var obj = $.evalJSON($($(data).children())); // Jquery-json
    $body = $("#AAA");
    $body.html(obj.fied);
},
 "xml"
);

while превращается в «отсутствующий] список элементов» (в строках 5 или 6) в firebug. Вывод JSON из метода был проверен с помощью jsonlint.com/

Вероятно, это очевидно, но, пожалуйста, я новичок в AJAX / JSON. Спасибо

Ответы [ 4 ]

14 голосов
/ 16 апреля 2010

Вероятно, происходит то, что ваш вызов $ .post уже возвращает объект JSON. jQuery попытается автоматически определить JSON и проанализировать его для вас. Когда вы вызываете eval для такого объекта JSON, вы видите эту ошибку. Подлый! Просто используйте объект данных как есть.

5 голосов
/ 26 апреля 2009

Используйте метод JSON.parse или обязательно указывайте пробел рядом с паренами, прежде чем передавать его в eval ...

eval(" (" + data + ") ");
0 голосов
/ 21 мая 2013

Оказывается, что jQuery попытается выяснить, является ли результат JSON, и проанализирует его автоматически, но в этом случае данные уже являются объектом JavaScript, а не строкой JSON, ожидающей анализа Таким образом, вы можете использовать этот объект как есть, вместо использования eval () и JSON.parse.

0 голосов
/ 28 апреля 2009

Вы пишете это в .NET 2.0? Если это так, попробуйте построить ваши данные в строку запроса, а не передавать объект JSON.

Пример: var1 = альма & var2 = пользователь

Где "var1" и "var2" - это имена параметров, которые ожидает ваш веб-метод. Передайте это, используя сообщение .. Данные: {querystring} Я столкнулся с проблемами при передаче JSON в веб-сервис в 2.0.

Удачи

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...