如何在 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} 结果。