如何在 nodeJS 服务器上允许 cors
How to allow cors on nodeJS server
我有一个超级简单的后端 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 问题,因为使用 postman 时一切正常。
非常感谢您的宝贵时间!
这不是 cors 问题,只需更改您的 fetch
即可获得预期结果。
fetch('http://localhost:3000/number')
.then(res => res.json()).then(data=>console.log(data));
这会给你 {number: 1}
结果。
我有一个超级简单的后端 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 问题,因为使用 postman 时一切正常。
非常感谢您的宝贵时间!
这不是 cors 问题,只需更改您的 fetch
即可获得预期结果。
fetch('http://localhost:3000/number')
.then(res => res.json()).then(data=>console.log(data));
这会给你 {number: 1}
结果。