CORS POST请求返回空主体

正如从这个问题的后续阶段“ 使POST JSON请求从HTML脚本到另一个域中的Node.JS应用程序 ”,我实现了一个CORS POST请求:

var request = new XMLHttpRequest(); var params = "parameter=test"; request.open('POST', 'http://localhost:3009/param_upload', true); request.onreadystatechange = function() {if (request.readyState==4) alert("It worked!");}; request.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); request.send(params); 

这是非常接近互联网的例子。 这是我在我的node.js服务器端的设置:

 app.use(cors()); var corsOptions = { origin: '*', credentials: true, allowedHeaders: ['*'], optionsSuccessStatus: 200 } 

当然,我的app.post函数头里有cors(corsOptions)。 但不知何故身体是空的。 作为要求,我得到了一个很长的回应,里面没有testing文本。 我可能会错过一点,但环顾四周,找不到它。 如果有人帮忙,我会很高兴。

我想你忘了使用BodyParser中间件。

https://github.com/expressjs/body-parser

 // parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) // parse application/json app.use(bodyParser.json()) 

有了这个中间件,你所有的身体数据都将在req.body中。

例:

 app.post('/test', function(req, res) { // body data console.log(req.body); }