【发布时间】:2017-07-06 19:44:40
【问题描述】:
我有一个对 API 进行 fetch 调用的 react 应用程序,如下所示:
postForm(state) {
var formData = state.formData;
return fetch('http://localhost:3000/api/V0.1/formSubmit', {method: 'POST', headers: {"Content-Type": "application/json"}, body: JSON.stringify(formData)})
.then((response) => response.json())
.then((responseJson) => {
console.log(responseJson);
return null;
})
.catch((error) => {
console.error(error);
});
}
但是,它被 CORS 阻止,因为规范指出 application/json 是非标准内容类型。
但是,我不确定如何修改我的 fetch 调用以执行所需的飞行前请求以使其允许 application/json。
API 调用是:
app.post("/api/v0.1/formSubmit", function(req, res) {
res.setHeader('Access-Control-Allow-Origin', 'http://localhost:8080');
res.setHeader('Access-Control-Allow-Methods', 'GET, POST, OPTIONS, PUT, PATCH, DELETE');
res.setHeader('Access-Control-Allow-Headers', '*');
var formData=req.body;
console.log(formData);
res.status(200).json(formData);
});
【问题讨论】: