CORS POST请求返回空体

时间:2017-06-21 15:53:44

标签: javascript node.js cors

作为此问题“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)。但不知何故,身体是空的。作为请求,我得到了一个很长的响应,里面没有测试文本。我可能会错过一个观点,但环顾四周,却找不到它。如果有人帮忙,我会很高兴。

1 个答案:

答案 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);
}