Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   JSON с сервака, замучала "missing ; before statement" (https://javascript.ru/forum/misc/13160-json-s-servaka-zamuchala-missing-%3B-before-statement.html)

Kolyaj 18.11.2010 13:48

Цитата:

Сообщение от said46
JSON точно валидный

JSON-то как раз точно не валидный, в валидном JSON кавычки должны быть, а не апострофы.

Вы покажите строку-то, которая присваивается из responseText.

said46 18.11.2010 13:55

содержимое php-скрипта, генерящего ответ от сервера:
<?header("Content-Type: application/json; charset=windows-1251");?>
[{"id": "501", "fio": "Агафонов Н.Г."}, {"id": "518", "fio": "Болобанова Т.В."}]

пробовал уже и с апострофами, и с кавычками... я же говорил, что содержимое php-ответа полностью совпадает с содержимым строки data в первом примере, который работает БЕЗ ошибок, т.е. валидность JSON вроде бы ни при чем.

Kolyaj 18.11.2010 13:58

У вас перенос строки здесь.

said46 18.11.2010 14:02

не понял где перенос строки?
кстати, попробовал сделать так:
Закинул в php строку вида "100:name1,200:name2", разобрал с помощью split, все работает без ошибок (идея с http://www.internet-technologies.ru/...ticle_526.html). Смущает только то, что, во-первых, это как то нестандартно, а во вторых, я еще хочу атрибуты к <options> прикрутить (доп. данные кроме атрибута value).

Kolyaj 18.11.2010 14:03

После отправки заголовка у вас идёт перенос строки. А в JSON не может быть переносов строк.

Хотя он тут не причём. Но убрать надо.

SV0L0CH 18.11.2010 14:05

а если просто скачать содержимое, то что там?

Kolyaj 18.11.2010 14:07

Вобщем покажите, что в Firefox-е покажет
alert(JSON.stringify(xmlHttp.responseText));

said46 18.11.2010 14:12

"[{\"id\": \"501\", \"fio\": \"Агафонов Н.Г.\"}, {\"id\": \"518\", \"fio\": \"Болобанова Т.В.\"}]"

SV0L0CH 18.11.2010 14:19

Выглядит вроде как валидно, может попробовать кодировку на utf-8 поменять?

said46 18.11.2010 14:22

менял, получаем все то же самое, только кракозябрами


Часовой пояс GMT +3, время: 23:07.