本文介绍了无法在Express JS节点中获取请求有效负载的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
这是我的Node Express代码,
This is my Node Express Code,
(function () {
'use strict';
var fs = require('fs');
var cors = require('cors');
var bodyParser = require('body-parser');
var express = require('express'),
app = express(),
port = 8112;
app.use(cors());
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
app.listen(port);
app.route('/abc')
.post(abc);
function abc(req,res){
console.dir(req.body);
res.header("Access-Control-Allow-Origin", "*");
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept");
res.sendStatus(200);
}
})();
但是我将请求正文设为
但是在Chrome的网络标签中,我可以看到请求有效负载. 请注意,此POST调用之前会触发OPTIONS.
But in my network Tab in Chrome I can see request payload. Please note OPTIONS is fired before this POST call.
请求标头
请求有效载荷
推荐答案
您需要发送:Content-Type: application/json
以使bodyParser.json()
工作,如果没有它,您的JSON有效负载将不会被解析,这就是您得到的原因:{}
You need to send: Content-Type: application/json
for bodyParser.json()
to work, without it, your JSON payload won't be parsed, that's why you get: {}
来自文档:
使用.fetch
的示例:
fetch('http://localhost:4200/dashboard', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({dd: 'dd'})
});
这篇关于无法在Express JS节点中获取请求有效负载的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!