首页 > 解决方案 > 使用 axios 请求时,仍然没有出现“Access-Control-Allow-Origin”标头

问题描述

我的应用程序使用 NodeJS、ReactJS 运行。

反应JS:

axios.post("https://api.myrealdomain.com/upload_file", data).then(res => {...}

我已经设置了允许所有“访问控制允许”,甚至使用了 app.use(cors())但仍然有同样的错误

从源“https://myrealdomain.com”访问“https://api.myrealdomain.com/upload_file”处的 XMLHttpRequest 已被 CORS 策略阻止:没有“Access-Control-Allow-Origin”标头出现在请求的资源。

节点JS:

const app = express();
app.use(cors());
app.use((req, res, next) => {
    res.setHeader('Access-Control-Allow-Origin', '*');
    res.setHeader('Access-Control-Allow-Credentials', true);
    res.setHeader('Access-Control-Allow-Methods', 'POST,GET,OPTIONS');
    res.setHeader('Access-Control-Allow-Headers', 'Content-Type, Authorization');
    next();
});
...
app.listen(port, () => console.log(`Listening on port ${port}`));

不知道是不是和https有关,因为这些NodeJS和ReactJS都是用https设置的(jwilder,letsencrypt,nginx-proxy)

我可以使用( https://api.myrealdomain.comhttps://myrealdomain.com)访问 NodeJS 和 ReactJS

NodeJS 中的版本:

node: 12
"express": "^4.17.1",
"cors": "^2.8.5",

ReactJS 中的版本:

"axios": "^0.20.0",

标签: node.jsreactjscross-domainsame-origin-policy

解决方案


推荐阅读