我遇到的问题与" whatwg-fetch"响应返回为200,但没有数据通过。
这是服务器上的代码......
app.post('/promo', function(request, response) {
response.setHeader('Access-Control-Allow-Origin', 'http://localhost:3000');
var promo = new PromoItem();
promo.imgUrl = request.body.imgUrl;
promo.name = request.body.name;
promo.description = request.body.description;
promo.category = request.body.category;
console.log('----------');
console.log(promo.name);
console.log(request.body.name);
console.log('----------');
promo.save(function(err, savedPromo) {
if (err) {
responde.status(500).send({
error: "Something happened, promo not saved !"
});
} else {
response.status(200).send("Success !");
}
});
});
promo.name 和 request.body.name 都以未定义的方式返回。
客户端上的代码..
setPromo = () => {
const options = {
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
method: "POST",
mode: 'no-cors',
body: JSON.stringify({
"imgUrl": "http://via.placeholder.com/900x200",
"name": "MI POST",
"description": "MI PRIMER POST",
"category": "Salud"
})
};
fetch('http://localhost:3010/promo', options).then(function(response) {
console.log('Status', response.status);
})
}
使用不同的值操作选项,但结果仍然相同。
任何想法?
感谢
答案 0 :(得分:0)
可能没有解析数据。在Express中,POST
主体可以由body-parser
解析。有一些用法示例on the Express website。从本质上讲,您可以使用body-parser
这样的中间件:
var bodyParser = require('body-parser');
app.use(bodyParser.json());
它也可以在每个路线上使用:
app.post('/promo', bodyParser.json(), function(request, response) { //...
如果您使用的是Express> = 4.16.0版本,bodyParser.json
可用express.json
。 (source)