与 react、express、axios、node 和 mysql 相关的 CORS 问题

Posted

技术标签:

【中文标题】与 react、express、axios、node 和 mysql 相关的 CORS 问题【英文标题】:CORS issues with react, express, axios, node and mysql 【发布时间】:2021-10-17 17:16:51 【问题描述】:

我尝试了所有方法,添加了所有标题并更改了选项,但似乎无论我做什么,cors 错误仍然困扰着我。

我得到他的错误:CORS Missing Allow Origin

我网站的前端托管在 netlify 上,后端托管在 heroku 上。我正在使用 react、axiosmysql、node 和 express。我还没有完全设置域名,但该网站工作正常,除了仅在某些发布请求上发生的 cors 错误。 令人惊讶的是,我认为我得到了预检请求,但有时也不确定。

这是我的快速节点设置:

var cors = require('cors');
app.use(cors( origin: true, credentials: true ));
app.options('*', cors())

app.use(express.static("./public"));
app.use(express.json());
app.use(express.urlencoded(
  extended: true
));

这是我的 axios 请求的样子:

Axios.post("https://backendurl" , 
                       headers : 
                            "Access-Control-Allow-Headers": "Origin, X-Requested-With, Content-Type, Accept, Authorization",
                            'Content-Type': "application/json; charset=utf-8",
                            'Access-Control-Allow-Origin': '*',
                            'Access-Control-Allow-Credentials': 'true',
                            'Access-Control-Allow-Methods': "GET, POST, PUT, DELETE OPTIONS",
                            'Accept': '*',
                            // Accept: '*',
                        , 
                        params: 
                            name: name, 
                        
                        ).then((response) => 
            console.log(response.data);

            
        );

我也尝试通过允许所有 cors 请求服务器设置代理,但它也不起作用。

如果有人有任何线索可以解决这个 cors 问题,那就太好了。特别是关于主要的帖子请求。非常感谢。

【问题讨论】:

当你设置了credentials: true,你需要在你的axios请求中传递withCredentials***.com/a/43178070/10796932 感谢您的提示,但不幸的是,即使将其添加到请求中,它仍然无法正常工作,我不知道为什么。 【参考方案1】:

当您改用 IP 地址时会发生什么?所以不要使用https://backendurl,而是使用https://192.x.x.x:port/

【讨论】:

我不认为它改变了什么。 啊,太糟糕了。它肯定对我有用。我在本地服务的盒子上有前端(FE)和后端(BE)。出于某种原因,我遇到了同样的错误,即使我在 BE express 端启用了 cors。我最终只使用 ip 地址进行从 FE 到 BE 的所有调用,现在它可以在我网络上的其他设备上正常工作。

以上是关于与 react、express、axios、node 和 mysql 相关的 CORS 问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 React 和 Axios 从 Express API 下载文件

CORS 与 React、Webpack 和 Axios

React AXIOS post - 简单测试不起作用(快递)

如何从服务器端 express/mongo/mongoose 中的 URL,客户端的 axios/react/redux 中获取参数 ID

使用 React Axios POST 请求时未设置 Express Session Cookie

如何在 Cookie 上指定 SameSite 和 Secure(使用 axios/React/Node Express)