作为此问题“Make POST JSON Request From HTML Script To A Node.JS App In Another Domain”的后一阶段,我实施了一个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)。但不知何故,身体是空的。作为请求,我得到了一个很长的响应,里面没有测试文本。我可能会错过一个观点,但环顾四周,却找不到它。如果有人帮忙,我会很高兴。
答案 0 :(得分:3)
我认为您忘记使用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);
}