Access to fetch at 'http://localhost:9091/user/page?pageNum=2&pageSize=3' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. :9091/user/page?pageNum=2&pageSize=3:1 Failed to load resource: net::ERR_FAILED HomeView.vue:145 Uncaught (in promise) TypeError: Failed to fetch at VueComponent.created (HomeView.vue:145:1) at invokeWithErrorHandling (vue.runtime.esm.js:3017:1) at callHook$1 (vue.runtime.esm.js:4031:1) at Vue._init (vue.runtime.esm.js:5693:1) at new VueComponent (vue.runtime.esm.js:5826:1) at createComponentInstanceForVnode (vue.runtime.esm.js:4544:1) at init (vue.runtime.esm.js:4406:1) at merged (vue.runtime.esm.js:4561:1) at createComponent (vue.runtime.esm.js:6567:1) at createElm (vue.runtime.esm.js:6521:1)
时间: 2024-04-20 10:25:05 浏览: 84
sudo apt-get install ethereum遇到E: Failed to fetch http://ppa.launchpad.net/, Unable to fetch some等
5星 · 资源好评率100%
这个错误是由于浏览器的同源策略(Same-Origin Policy)导致的。同源策略要求网页只能请求同源(协议、域名、端口号都相同)的资源,否则会出现跨域错误。
根据错误信息,你的前端页面正在通过fetch方法请求一个位于'http://localhost:9091'的资源,但是该资源的响应头中没有包含'Access-Control-Allow-Origin'字段,因此浏览器会拒绝这个请求。
要解决这个问题,你需要在后端服务器的响应头中添加'Access-Control-Allow-Origin'字段,并设置为允许访问的域名,例如设置为'*'表示允许所有域名访问。你可以在后端代码中添加以下代码:
```
response.setHeader('Access-Control-Allow-Origin', '*');
```
另外,如果请求中包含自定义的请求头字段,如'Authorization',你还需要在响应头中添加'Access-Control-Allow-Headers'字段,并指定允许的请求头字段。例如:
```
response.setHeader('Access-Control-Allow-Headers', 'Authorization');
```
这样设置后,浏览器就会允许从'http://localhost:8080'发起对'http://localhost:9091'的请求了。
请注意,在生产环境中,应该将允许访问的域名限制为实际需要的域名,而不是使用通配符'*'。这样可以增加安全性。
阅读全文