与 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、axios、mysql、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 下载文件
React AXIOS post - 简单测试不起作用(快递)
如何从服务器端 express/mongo/mongoose 中的 URL,客户端的 axios/react/redux 中获取参数 ID
使用 React Axios POST 请求时未设置 Express Session Cookie
如何在 Cookie 上指定 SameSite 和 Secure(使用 axios/React/Node Express)