java解决请求跨域的问题

1、什么是请求跨域?为什么会出现请求跨域的问题?

      跨域问题是浏览器为了保护用户安全而采用的同源策略(Same-Origin Policy),即只

     允许页面页面请求同源(相同 域名、协议和端口);若页面请求违背了同源策略,即

     请求目标与当前页面的域名、协议、端口不一致时,浏览器会阻止请求或接收。

2、使用spring web 下的 CorsWebFilter 实现跨域

      将 CorsWebFilter 注入到spring ioc容器中可以实现去所有的请求/应答实现跨域;

      一般将类 CorsConfiguration  放到网关中,表示对所有的请求/应答实现跨域;

      CorsConfiguration 代码如下:

@Configuration
public class CorsConfiguration {

    @Bean
    CorsWebFilter corsWebFilter(){
        //用于添加映射地址
        UrlBasedCorsConfigurationSource corsSource = new UrlBasedCorsConfigurationSource();

        //配置CORS,即允许跨域的请求
        CorsConfiguration corsConfiguration = new CorsConfiguration();
        //配置跨域
        corsConfiguration.addAllowedHeader("*");//允许跨域的请求头,“*” 允许所有的请求头跨域
        corsConfiguration.addAllowedMethod("*");//允许跨域的请求方式,“*”允许所有的请求方式跨域
        corsConfiguration.addAllowedOrigin("*"); //允许跨域的域,“*”允许所有的Origin 跨域
        corsConfiguration.setAllowCredentials(true); //true表示允许所有带cookie的请求跨域
        corsConfiguration.addExposedHeader("*"); //暴露的头部信息

        //添加映射地址
        corsSource.registerCorsConfiguration("/**",corsConfiguration);

        return new CorsWebFilter(corsSource);
    }
}

注意:

   在 Spring 5.3 之后,配置类 CorsConfiguration 中将 addAllowedOrigin 方法名修改为 addAllowedOriginPattern,所以在spring5.3之后上边  corsConfiguration.addAllowedOrigin("*");

就变成了  corsConfiguration.addAllowedOriginPattern("*");

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值