跨域请求 笔记(二)设置Access-Control-Allow-Origin允许多域名访问

 对于前后端分离的项目难免会遇到跨域的问题,在设置跨域的问题中有许多需要注意的事情,如本次将要将的设置Access-Control-Allow-Origin使其允许多域名请求。

     (1)使用通配符:

这种方式允许所有域名都可以访问,并不安全,而且这种方式浏览器不能携带cookie信息(携带cookie信息只能使用真实域名,如下面第二中方式)。这种方式只推荐在不带cookie信息的开发中测试使用。代码如下:
 reponse.setHeader("Access-Control-Allow-Origin", "*");

     (2)先判断再设置:

 @Override
    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain) throws IOException, ServletException {
        HttpServletRequest req = (HttpServletRequest) request;
        HttpServletResponse rep = (HttpServletResponse) response;


        // 设置允许访问当前服务的 多个域名
        String[] allowDomains = {"http://www.toheart.xin","http://192.168.11.213:8080","http://localhost:8080"};
        Set allowOrigins = new HashSet(Arrays.asList(allowDomains));

        //获取发起当前请求的域名
        String originHeads = req.getHeader("Origin");

        // 判断发起当前请求的域名 是否包含在允许访问当前服务的域名之内
        if(allowOrigins.contains(originHeads)){
            //设置允许跨域的配置
            rep.setHeader("Access-Control-Allow-Origin", originHeads);
        }

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值