Обычно также числа, логические, строковые и нулевые, без какого-либо объекта или массива, являются допустимыми json.Но axios
не обрабатывает их как JSON по умолчанию в процессе автоопределения, только те, у которых typeof
равен object
, будут отправлены с типом контента application/json
.
. Вам потребуетсячтобы установить заголовок content-type
самостоятельно:
axios({ method: 'post', url: '/buy', data: 1, headers: {
'Content-Type': 'application/json; charset=utf-8'
}})
Теперь axios будет отправлять с "правильным" заголовком типа контента, чтобы получатель воспринял его как JSON.
Но теперь body-parser
будет жаловаться на то, что полученные данные не соответствуют действительности.Это связано со следующей опцией:
строгий
При значении true
будут приниматься только массивы и объекты;когда false
примет все, что JSON.parse
примет.По умолчанию true
.
Ваш код будет работать с использованием опции strict: false
для body-parser
в сочетании с настройками заголовка Content-Type
для axios
.
Такможно заставить его работать, но самым простым способом было бы обернуть целое число в объект.