跨域及其解决方案

255 阅读1分钟

跨域的定义

由于浏览器的同源策略的安全机制,控制不同源之间的交互,不同源之间的交互就是属于跨域。

跨域原因

浏览器的同源策略安全机制,同源策略简单说明:协议,域名,端口号都相同才被认为是同源。具体请了解:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy

跨域解决方案

  1. 本地开启代理服务器,直接访问后台接口。因为服务器与服务器之间不存在跨域,所以通过设置本地服务器去访问目标服务器,然后本地服务器返回数据就不存在跨域。
  2. CORS解决方案,跨域资源访问,即服务器可以选择,允许跨域请求访问到它们的资源。Access-Control-Allow-Origin设置为*指定域名
  3. 图片的跨域:https://www.zhangxinxu.com/wordpress/2018/02/crossorigin-canvas-getimagedata-cors/
  4. document.domain 在iframe嵌套中一级域名相同二级域名不同的情况下设置 document.domain=一级域名,之后可以访问各自的window对象了
  5. jsonp,需要定义请求类型jsonp响应后的callback函数(后端配合支持)
  6. nginx反向代理,通过相同域名访问代理到本地