我正在尝试使用节点js实现联系表单,但是在接收后端中的数据时,当我打印它时,req.body总是显示“ undefined”。我正在尝试通过javascript发送json数据。 我已经在互联网上寻找信息,但没有任何解决方案。
发送JSON的前端代码:
const sendData = dataJSON => {
let http = new XMLHttpRequest();
let url = '/send-email';
btnSend.addEventListener('click', async e => {
e.preventDefault();
http.open('POST', url, true);
http.setRequestHeader('Content-Type', 'text/json');
http.onreadystatechange = () => {
if (http.readyState == 4 && http.status == 200) alert(http.responseText);
};
http.send(await dataJSON);
console.log(dataJSON);
});
};
En el后端:
app.use(morgan('dev'));
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
router.post('/send-email', (req, res) => {
console.log(req.body);
res.send('Received');
});
感谢您的帮助。预先非常感谢。
答案 0 :(得分:0)
我试图运行将dataJSON作为对象传递的代码,但它也遇到了同样的问题,但是我设法解决了以下问题
let url = '/send-email'; // complete URL
...
http.setRequestHeader('Content-Type', 'application/json');
...
http.send(await JSON.stringify(dataJSON));