С формы отправляю данные на сервер (node.js) таким образом:
var data = {
title: "some title",
desc: "some desc"
}
var xhr = new XMLHttpRequest();
xhr.open("POST", "/add_movie", true);
xhr.send(JSON.stringify(data));
Обрабатываю прием этих данных таким образом:
var body = '';
req
.on('readable', function() {
body += req.read();
})
.on('end', function() {
try {
body = JSON.parse(body);
// далее код
} catch (err) {
return new SystemError(500, err, 'routes/rk_after', 'Парсим JSON');
}
});
Мне приходят данные, я их редактирую как нужно и в целом все работает нормально.
Данный код может 200 раз сработать корректно, а на 201-ый выдать ошибку. Затем еще раз 150 все будет гладко, а потом опять ошибка.
Текст ошибки:
Тип: System error
Статус: 500
Сообщение: SyntaxError: Unexpected token o
Файл: routes/rk_after
Место: Парсим JSON
Stack: SyntaxError: Unexpected token o
at Object.parse (native)
at IncomingMessage.<anonymous> (/var/www/loststore/routes/rk_after.js:16:21)
at emitNone (events.js:67:13)
at IncomingMessage.emit (events.js:166:7)
at endReadableNT (_stream_readable.js:913:12)
at nextTickCallbackWith2Args (node.js:442:9)
at process._tickCallback (node.js:356:17)
Т.е. по ответу ошибка происходит именно в этом месте, try не выполняется и срабатывает catch.
Я не могу понять, от чего зависит вылет этой ошибки. Я для проверки вставлял один и тот же текст в форму и по многу раз его отсылал (текст - просто цифры 111). 300 раз - полет нормальный, 301-ый - ошибка, еще раз 220 все хорошо - 221-ый - ошибка.
В чем проблема?