create-react-app axios 多个域名环境cors跨域

1.前端设置

前端其实在跨域上不需要进行任何设置,直接使用axios的官方示例即可

//axios.defaults.withCredentials =true;//让ajax携带cookie (这个必须要,否则无法跨域携带cookie)

axios.get('/user?ID=12345')
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

2.后端设置

cors跨域主要是需要在服务端进行配置

跨域设置

@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain filterChain)
        throws ServletException, IOException {
    Properties props = PropertiesLoaderUtils.loadAllProperties("cors.properties");
    //允许访问的客户端域名

    String origin = request.getHeader("Origin");
    String[] allowDomainArr = props.getProperty("cors.allowed-origins").split(",");
    List<String>  allowDomain = Arrays.asList(allowDomainArr);
    if (allowDomain.contains(origin)){
        response.addHeader("Access-Control-Allow-Origin", origin);
    }
    //允许访问的方法名
    response.addHeader("Access-Control-Allow-Methods", props.getProperty("cors.allowed-methods"));
    //允许服务端访问的客户端请求头,多个请求头用逗号分割,例如:Content-Type
    response.addHeader("Access-Control-Allow-Headers", props.getProperty("cors.allowed-headers"));
    //是否允许请求带有验证信息,若要获取客户端域下的cookie
    response.addHeader("Access-Control-Allow-Credentials", props.getProperty("cors.allow-credentials"));
    //预检验请求时间
    response.addHeader("Access-Control-Max-Age",  props.getProperty("cors.max-age"));//30 min

    filterChain.doFilter(request, response);
}

配置设置

cors.allowed-origins=data-stg.ebc.jd.com
cors.allowed-methods=POST, GET, OPTIONS, DELETE
cors.allowed-headers=Content-Type,Cookie
cors.exposed-headers=
cors.allow-credentials=true
cors.max-age=1800
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值