Ожидается parseerror jQuery getJSON ';' - PullRequest
2 голосов
/ 01 июня 2011

Использование IE8, jQuery 1.6.1.min.js.

JSON, полученный из службы REST, кажется действительным (по крайней мере, когда я проверяю его на jsonlint.com)

{
"requestId":"1624517264",
"acknowledge":1,
"errorCode":0,
"totalResultCount":2,
"results":[
{"EmployeeCode":"007","EmployeeUno":7,"EmployeeName":"Bond, James","Location":"Unknown","Login":"JBOND"},
{"EmployeeCode":"008","EmployeeUno":8,"EmployeeName":"Bar, Foo","Location":"NYC","Login":"FBAR"}
]}

jQuery:

  $.getJSON(urlToSvc + "&callback=?", function (data) {
                   // can't get to here 
                });

Iожидаемая ошибка JavaScript ';'.Что я делаю не так?

Ответы [ 2 ]

4 голосов
/ 01 июня 2011

Если это именно тот ответ от urlToSvc, то похоже, что вы делаете запрос JSONP, но urlToSvc возвращает простой JSON.

Если вы используете инструмент, такой как Firebug, для проверки запроса, который $.getJSON() делает, вы должны обнаружить, что он заменяет callback=? чем-то вроде callback=jQuery152012865984649397433_1306892572812. Это означает, что jQuery ожидает, что JSON будет возвращен в качестве параметра для вызова функции jQuery152012865984649397433_1306892572812(). Вот как она закулисно подключает вашу функцию обратного вызова.

В этом случае ответ должен выглядеть примерно так (хотя точное имя функции будет меняться при каждом запросе, заданном параметром callback querystring):

jQuery152012865984649397433_1306892572812('{"requestId":"1624517264","acknowledge":1,"errorCode":0,"totalResultCount":2,"results":[{"EmployeeCode":"007","EmployeeUno":7,"EmployeeName":"Bond, James","Location":"Unknown","Login":"JBOND"},{"EmployeeCode":"008","EmployeeUno":8,"EmployeeName":"Bar, Foo","Location":"NYC","Login":"FBAR"}]}')
1 голос
/ 01 июня 2011

JSON выглядит корректно.Рассмотрим возможность того, что трассировка является неточной и что это фактически синтаксическая ошибка в функции обратного вызова.Также убедитесь, что эти данные являются фактически полученными данными - например, если URL-адрес немного не совпадает, возможно, вы пытаетесь проанализировать страницу ошибки.Сетевые вкладки Chrome или Firebug отлично подходят именно для этого.

...