page contents

SpringBoot中如何解决跨域问题 ?

轩辕小不懂 发布于 2022-02-19 13:42
阅读 400
收藏 0
分类:Java开发
3125
Nen
Nen
- 程序员

跨域可以在前端通过 JSONP 来解决,但是 JSONP 只可以发送 GET 请求,无法发送其他类型的肋,因此我们推荐在后端通过 (CORS,Cross-origin resource sharing) 来解决跨域问题。这种框架中,就可以通过 CORS 来解决跨域问题,只不过之前我们是在 XML 文件中配置 CORS ,现addCorsMappings方法解决跨域问题。

@Configuration

public class CorsConfig implements WebMvcConfigurer {

 @Override

 public void addCorsMappings(CorsRegistry registry) {

 registry.addMapping("/**")

 .allowedOrigins("*")

 .allowCredentials(true)

 .allowedMethods("GET", "POST", "PUT", "DELETE", "OPTI

 .maxAge(3600);

 }

}

项目中前后端分离部署,所以需要解决跨域的问题。

我们使用cookie存放用户登录的信息,在spring拦截器进行权限控制,当权限不符合时,直接返

当用户登录以后,正常使用;当用户退出登录状态时或者token过期时,由于拦截器和跨域的顺

我们知道一个http请求,先走filter,到达servlet后才进行拦截器的处理,如果我们把cors

@Configuration

public class CorsConfig {

 @Bean

 public CorsFilter corsFilter() {

 CorsConfiguration corsConfiguration = new CorsConfiguration()

 corsConfiguration.addAllowedOrigin("*");

 corsConfiguration.addAllowedHeader("*");

 corsConfiguration.addAllowedMethod("*");

 corsConfiguration.setAllowCredentials(true);

 UrlBasedCorsConfigurationSource urlBasedCorsConfigurationSour

UrlBasedCorsConfigurationSource();

 urlBasedCorsConfigurationSource.registerCorsConfiguration("/*

 return new CorsFilter(urlBasedCorsConfigurationSource);

 }

}



请先 登录 后评论