我有一个超级简单的后端与node.js,我有CORS启用。但是,我仍然不能允许跨域发送任何类型的数据。
这是我在端口3000上运行的后端:
const express = require('express');
const cors = require('cors');
const app = express();
var corsOptions = {
origin: 'http://127.0.0.1:3001',
optionsSuccessStatus: 200 // For legacy browser support
}
app.use(cors(corsOptions));
//app.use(cors()); ALSO TRIED THIS
app.listen('3000', () => {
console.log('Listening on port 3000');
});
app.get('/number', (req, res) => {
res.json({number: 1});
});
这是我如何从前端获取,运行在端口3001:
fetch('http://localhost:3000/number')
.then(res => console.log(res));
但这是我得到的响应:
Response {
body: ReadableStream
bodyUsed: false
headers: Headers {}
ok: true
redirected: false
status: 200
statusText: "OK"
type: "cors"
url: "http://localhost:3000/number"
}
但我期待:
Response {
number:1
}
我认为这主要是一个CORS问题,因为当使用邮差时一切都工作得很好。
非常感谢你的时间!
这不是cors的问题,简单地改变你的fetch
像一个打击得到预期的结果。
fetch('http://localhost:3000/number')
.then(res => res.json()).then(data=>console.log(data));
结果将得到{number: 1}
。