2013-07-31 3 views
0

Я посылаю объект JSON из веб-клиента, который выглядит следующим образом:Узел Экспресс разбирает тело запроса с JSON неправильно

{"AudioEncoder":{"Settings":{"1":{"audio_bitrate":"16000"}}}} 

И в запросе я получаю от req.body.myvalue:

{"AudioEncoder":{"Settings":[null,{"audio_bitrate":"16000"}]}} 

В на панели сети моего браузера я вижу правильное значение:

myvalue[AudioEncoder][Settings][1][audio_bitrate]:16000 

Ошибка в том, что я ожидаю объект с ключом {1:..., но получите [null:....

Любые идеи, почему это произойдет?

+0

Как вы извлекаете эти данные? Вы используете 'JSON.parse'? или? – Ali

+0

Нет, он приходит как объект –

ответ

1

Я подозреваю, что ваш браузер на самом деле не отправляет JSON, он отправляет application/x-www-form-urlencoded. Это неверное значение, если вы пытаетесь отправить браузер JSON: myvalue[AudioEncoder][Settings][1][audio_bitrate]:16000. Это не JSON. Проверьте заголовки запроса на Content-Type и посмотрите на необработанное тело запроса, чтобы проверить это. Если вы разместите свой браузер JS, который отправляет AJAX, мы можем помочь вам исправить это. jQuery делает немного сложным, чтобы правильно указать параметры, чтобы заставить его действительно отправлять JSON.

+0

Спасибо, вот что это! –

Смежные вопросы