SpringBoot+Vue的跨域问题
SpringBoot中解决跨域问题通常有以下几种方法:
- 使用
@CrossOrigin
注解:在Controller或者具体的方法上添加该注解,可以指定允许跨域的域名、请求方法等。
@CrossOrigin(origins = "http://localhost:8081")
@RestController
public class MyController {
// ...
}
- 全局配置跨域:在SpringBoot的配置类中添加CorsFilter的Bean配置。
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedOrigins("http://localhost:8081")
.allowedMethods("GET", "POST", "PUT", "DELETE");
}
}
- 使用Filter处理跨域问题:自定义一个Filter,在其中设置响应头来允许跨域。
@Component
public class CorsFilter implements Filter {
@Override
public void doFilter(ServletRequest req, ServletResponse res, FilterChain chain) throws IOException, ServletException {
HttpServletResponse response = (HttpServletResponse) res;
response.setHeader("Access-Control-Allow-Origin", "http://localhost:8081");
response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
chain.doFilter(req, res);
}
// ...
}
确保将Vue前端应用运行在指定的域名和端口上(例如http://localhost:8081),以匹配SpringBoot配置中允许的跨域来源。
评论已关闭