Я не изучил причину этих проблем (множественное число - где-то вдоль линии явно есть как минимум две ошибки - jquery, node, express), хотя сводка и обходные пути следующие:
Когда ваш клиентский код выглядит так, как в вашем обновленном вопросе, сервер, очевидно, не должен аварийно завершить работу с ошибкой malloc (ошибка # 1), хотя понятно, что запрос неправильно обрабатывается, так как вы говоритеjquery для отправки JSON, а затем вы отправляете строку.
ошибка # 2 просто null --> "null"
вдоль трубы.По крайней мере, это не приводит к сбою сервера, потому что типы данных соответствуют заголовкам (то есть все думают, что мы используем json), однако кто-то конвертирует нули в строки.Я безосновательно подозреваю, что это экспресс / соединение.
Наконец, обходной путь - это просто обернуть ваши данные способом, который удается транспортировать, а затем развернуть на стороне сервера:
Клиентская сторона:
$.post({
url: 'user/' + id,
data: {workaround: JSON.stringify(data)}, // no null strings this way
success: function(response){
console.log(response);
}
});
Серверная сторона:
app.post('/user/:id', function(req,res){
var id = req.params.id;
var data = JSON.parse(req.body.workaround); // unwrap
console.log(data);
});
Если я найду время, я исследую и постараюсь опубликовать ошибкусообщить куда-нибудь (это проблема, когда вы не знаете, чья это вина ...), попробуйте также сделать это.