• 35648

    文章

  • 23

    评论

  • 20

    友链

  • 最近新加了很多技术文章,大家多来逛逛吧~~~~
  • 喜欢这个网站的朋友可以加一下QQ群,我们一起交流技术。

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

欢迎来到阿八个人博客网站。本 阿八个人博客 网站提供最新的站长新闻,各种互联网资讯。 喜欢本站的朋友可以收藏本站,或者加QQ:我们大家一起来交流技术! URL链接:https://www.abboke.com/jsh/2019/0702/4270.html

>>>

    在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 goOA(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端带入用户名、密码进行判断处理,通过返回值在前端做出不同的处理。

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

相关文章

暂住......别动,不想说点什么吗?
  • 全部评论(0
    还没有评论,快来抢沙发吧!