用ajax向express后台发post请求,接收到的req.body为什么是空对象?
前端js:
regBtn.onclick = function () {
let userjson = {
"id": input3.value,
"password": input4.value
};
const xhr = new XMLHttpRequest();
xhr.open('post', '/login');
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
xhr.send(userjson);
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
if (xhr.status >= 200 && xhr.status < 300) {
console.log(xhr.response);
//之后要根据不同的response进行不同的操作
}
}
}
}
后端:
app.post('/login', function (req, res) {
console.log(req.body); // 空对象
});
请问是出了什么问题呢
补充:
现在知道我ajax send的数据格式不对,改成了这样:
xhr.send(`id=${input3.value}&password=${input4.value}`);
但是还存在空对象问题...
我又加上了
xhr.setRequestHeader("Content-Type","application/json");
结果报错:
SyntaxError: Unexpected token i in JSON at position 0
at JSON.parse (<anonymous>)
at createStrictSyntaxError
解决了,改成
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
就好了
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
你需要添加配置解析表单请求体