跨域实战解决方案

一.跨域方案

1.JSONP跨域

   (1)前端发起jQuery ajax 的get请求

        $.getJSON(

          "http://localhost:8080/test/test.do?callback=?",

           function(json){

               alert(json[0].name);

           }

        );

   (2)后台返回数据

     String callback = request.getParameter("callback");

     out.print(callback+"([ { name:'nicke',age:'19'},{ name:'hery',age:'20'}] );");

     out.print(callback);

2.设置response跨域

response.setHeader("Access-Control-Allow-Origin", "http://www.test.com");

response.setHeader("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");

response.setHeader("Access-Control-Max-Age", "3600");

response.setHeader("Access-Control-Allow-Headers", "x-requested-with");

3.将跨域的请求,通过后台发起http请求,然后再返回给前台

4.通过nginx转发

二.跨域经典案例

1.A.com,B.com 跨域共享cookie

方案:iframe+window.name

2.test1.A.com请求test2.A.com里面的服务,该服务要拿到test1.A.com里面的cookie

方案:jsonp

总结:推荐1,2,其实2不安全是伪命题,设置好允许跨域的域名就行

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,937评论 18 139
  • 什么是跨域? 2.) 资源嵌入:、、、等dom标签,还有样式中background:url()、@font-fac...
    电影里的梦i阅读 2,389评论 0 5
  • XMLHttpRequest的跨域请求 动态添加一个标签,而script标签的src属性是没有跨域的限制的。这样说...
    葛高召阅读 22,552评论 0 0
  • 同源策略 理解跨域首先必须要了解同源策略。同源策略是浏览器上为安全性考虑实施的非常重要的安全策略。何谓同源:URL...
    48892085f47c阅读 733评论 0 6
  • (1) 闺蜜里素有圣母绰号的娟被离婚了,她全心全意爱着的老公出轨了,继而对她提出离婚,而在离婚之前财产全部转移完毕...
    代连华阅读 869评论 0 0