Java 跨域问题一站式解决方案

    在web项目开发中,经常会遇到跨域的问题(何为跨域这里就不做解释了),百度搜索也有不少的解决方案(部分过于繁琐,未用到)。这里将自己的处理方式和大家分享下,希望能帮到大家。

    (1)js端处理:通常是以ajax的方式,以下是处理代码

$.ajax({
   type: "GET",
   url: 'common/goBD.do',
   xhrFields: {withCredentials: true },
   crossDomain: true,
   success: function(data){
        window.open("http://www.baidu.com");
   }
});

        这里主要注意下该代码:xhrFields: {withCredentials: true },不可缺少;url是访问服务端地址,成功返回后跳转百度页面(新打开tab页,当然也可以在原有的页面上打开)。

    (2)服务端处理:通过设置response头部信息的方式,以下是处理代码

@RequestMapping(value="/goBD")
public void goBD(HttpServletResponse response,HttpServletRequest request) throws IOException{
    String msg = "";
    String result = "{\"msg\":"+msg+"}";
    PrintWriter out = response.getWriter();
    response.setHeader("Access-Control-Allow-Credentials", "true");
    response.setHeader("Access-Control-Allow-Origin", request.getHeader("Origin"));
    response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
    response.setHeader("Access-Control-Max-Age", "0");
    response.setCharacterEncoding("utf-8");
    out = response.getWriter();
    out.write(result);
    out.flush();
    out.close();
}

    这里只是简单的处理了下response头部信息,并没有加入其他的,若有其他的判断如登录时可在js端带入用户名、密码进行判断处理,通过返回值在前端做出不同的处理。

    好了,上面的不复杂,只是简单的跨域跳转的处理,很方便实用,亲测可用。

转载于:https://my.oschina.net/u/3747963/blog/3068338

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值