跨域常见问题

什么是跨域就不说了,百度可以查到一堆文章。

这里要说的是,跨域的几个场景:

1、Ajax跨域

  Ajax跨域跟前端没有什么关系,只是后端服务器的安全限制,但也可在前端处理。常见的处理方式分为:

  1)前端处理

    通过JSONP的方式,这里不细讲。大概的思路是,借助<script>标签不存在跨域的“BUG”,模拟向另一个服务发请求

  2)后端处理

    有几种方式:

      a)在web.xml配置过滤器,在过滤器中,给每个Response设置Header,增加Access-Control-Allow-Origin之类的头配置项,百度可以找到很多该类的文章

      b)如果使用spring-mvc,可在mvc配置文件中加入<mvc:cors>标签,百度也可以找到很多该类文章

2、iframe跨域

  这个之前没怎么注意过这个问题,直到用到spring-security的时候才注意到该问题。

  spring-security的配置里有个<security:headers>的配置项可以配置<security:frame-options>标签。意思是,是否允许我页面中的iframe的跨域,不用spring-security的时候,默认是允许的

 

 

3、iframe跨域时数据传输

PostMessage

参照: https://blog.csdn.net/lvchengbo/article/details/54911056

4、iframe跨域数据访问

跨域数据访问时,因为浏览器为了安全,禁止了不同域访问。因此只要调用与执行的双方是同域则可以相互访问。否则会有如下报错

Uncaught SecurityError: Blocked a frame with origin "http://localhost" from accessing a frame with origin "http://127.0.0.1". Protocols, domains, and ports must match

怎么解决,参照:https://blog.csdn.net/fdipzone/article/details/17619673,https://www.cnblogs.com/boystar/p/6909214.html

 

posted @ 2018-06-07 17:03  阿狸哥哥  阅读(255)  评论(0编辑  收藏  举报