Ожидается parseerror jQuery getJSON ';'

Используя 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 
                });

Я получаю ошибку JavaScript Ожидается ';'. Что я делаю неправильно?

2 ответа

Решение

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

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

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

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"}]}')

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

Другие вопросы по тегам