我使用express来返回通过请求调用检索到的api响应。
router.post('/', function(req, res){
var options = {
...
}
rp(options)
.then(function (parsedBody) {
console.log(parsedBody);
res.json(parsedBody)
})
控制台日志显示预期的有效负载,当我使用Postman时,我也会看到预期的有效负载。
当我的客户端应用获得响应时,它是:
Response {type: "cors", url: "http://localhost:3001/api/", redirected: false, status: 200, ok: true, …}
我尝试过添加CORS中间件:
app.use(function(request, response, next) {
response.header("Access-Control-Allow-Origin", "*");
response.header("Access-Control-Allow-Headers",
"Origin, X-Rquested-With, Content-Type, Accept");
next();
});
我的客户端使用fetch是一个非常简单的反应应用程序:
fetch('http://localhost:3001/api/', {
method: 'POST',
dataType: 'JSON',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
},
body: data,
}).then((response) => {
console.log(response);
}).catch((response) => {
console.log('Error');
});
我的反应应用是localhost:3000和快速api localhost:3001,预期的有效载荷是一个非常简单的对象......
{
athlete: {
firstname: "Matt"
...
}
}
如何才能将api请求响应转发给客户端获取成功方法?
答案 0 :(得分:0)
问题与CORS无关,反应应用程序内的响应需要解析为json:
.then((response) => {
console.log(response.json());
})