访问“获取”http://localhost:8080/demo/getall“从原点”http://localhost:3000'已被cors策略阻止

blmhpbnm  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(714)

我用spring构建了一个后端,现在我想用react构建一个前端。当我尝试获取请求url时,出现以下错误:
在'http://localhost:8080/demo/getall“从原点”http://localhost:3000“已被cors策略阻止:请求的资源上不存在“access control allow origin”标头。如果不透明响应满足您的需要,请将请求的模式设置为“no cors”,以获取禁用cors的资源。
这是我的密码:

const fetchItems = async () => {
fetch('http://localhost:8080/demo/getAll').then(response => response.json()).then(data => 
console.log(data));
};

有人知道问题是什么吗?我该怎么解决?

yi0zb3m4

yi0zb3m41#

https://www.w3.org/security/wiki/same_origin_policy
源由url的方案、主机和端口定义
港口必须是相同的,以过去相同的起源。
对于react,您拥有它的代理,因此您可以请求 :3000 就好像你把它送到 :8080 如果您使用的是create-react应用程序,那么很容易做到:https://create-react-app.dev/docs/proxying-api-requests-in-development/
否则,最好的办法可能是修改后端上的cors头:访问控制如何允许源站头工作?

相关问题