-1

我用 Spring 构建了一个后端,现在我想用 React 构建一个前端。当我尝试获取我的请求 URL 时,我收到以下错误:

CORS 策略阻止了从源“http://localhost:8080/demo/getAll”获取的访问权限:没有“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));
};

有谁知道问题是什么,我该如何解决?

4

1 回答 1

1

https://www.w3.org/Security/wiki/Same_Origin_Policy

来源由 URL 的方案、主机和端口定义

端口必须与过去相同的来源相同。

对于反应,你有它的代理,这样你就可以向它发出请求:3000,它就像你把它发送到:8080

如果您使用的是 Create React App,这很容易完成:https ://create-react-app.dev/docs/proxying-api-requests-in-development/

否则,您最好的选择可能是修改后端的 CORS 标头:Access-Control-Allow-Origin 标头如何工作?

于 2021-04-07T20:53:22.050 回答