Fairydored / SEP-cw2

0 stars 0 forks source link

我遇到了跨域问题 #8

Open 000NK000 opened 5 months ago

000NK000 commented 5 months ago

大家好,我在开发一个前后端分离的web应用时遇到了跨域问题,希望得到各位的帮助。

我的前端应用使用 Vue.js 开发,运行在 http://localhost:8080 上。后端使用 Spring Boot 提供 RESTful API,运行在 http://localhost:8090 上。

当我在前端发起跨域请求时,请求总是失败,在浏览器控制台看到如下错误:

Access to XMLHttpRequest at 'http://localhost:8090/api/users' from origin 'http://localhost:8080' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

我怀疑是后端没有正确配置 CORS。我在后端添加了 @CrossOrigin 注解,但似乎没有效果:

@RestController @RequestMapping("/api") @CrossOrigin(origins = "http://localhost:8080") public class UserController { // ... }

我还尝试用 WebMvcConfigurer 配置了全局的 CORS,但也没有解决问题:

@Configuration public class WebConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping("/api/**") .allowedOrigins("http://localhost:8080") .allowedMethods("GET", "POST", "PUT", "DELETE") .allowCredentials(true) .maxAge(3600); } }

我在网上搜索了很多关于 Spring Boot 配置 CORS 的资料,但似乎我哪里还是做错了,导致跨域请求一直失败。

请问有经验的开发者,我应该如何修改后端代码,让它正确支持 CORS?前端需要做什么配置吗?