Могу ли я исправить ошибку: «JSON.parse: неожиданный символ» - PullRequest
3 голосов
/ 27 декабря 2011

Я сталкиваюсь с этой ошибкой. Приложение работает нормально, но Firebug останавливает сценарии.

   JSON.parse: unexpected character
   Line 9 (all.js)

Рассматриваемая строка выглядит следующим образом:

FB.provide('JSON',{stringify:function(a){if(window.Prototype&&Object.toJSON){return Object.toJSON(a);}else return JSON.stringify(a);},parse:function(a){return JSON.parse(a);},flatten:function(c){var a={};for(var b in c)if(c.hasOwnProperty(b)){var d=c[b];if(null===d||undefined===d){continue;}else if(typeof d=='string'){a[b]=d;}else a[b]=FB.JSON.stringify(d);}return a;}});

Я полагаю, что исключение выдается встроенным парсером JSON Firefox в методе разбора, определенном в этой строке. Строка, передаваемая для разбора, выглядит следующим образом:

"cb=f49f4551da8c7e&origin=http%3A%2F%2Flocalhost%3A9292%2Ff3726c758943f5&relation=parent&transport=postmessage&frame=f2b4bb038098548&code=2.AQ...fU&signed_request=_7hf...E3OCJ9&access_token=AAADj6D4s...ZDZD&expires_in=6650"

Очевидно, что это недопустимая строка JSON, следовательно, ошибка синтаксического анализа.

Строка происходит из события, доставленного с использованием xd_proxy.php, указанная выше строка является хешем URL для этого iframe.

Я немного обыскал и не нашел никакой полезной информации об этой ошибке.

1 Ответ

7 голосов
/ 29 декабря 2011

Оказывается, это исключение корректно перехватывается и обрабатывается кодом, который его вызывает, но поскольку Firebug настроен на "разбить все ошибки", он останавливает выполнение независимо от того, перехватилось ли это исключение.

Таким образом, исправление состоит в том, чтобы отключить «разбить все ошибки» в Firebug, это на самом деле не проблема со скриптами Facebook.

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