跨域的定义
由于浏览器的同源策略的安全机制,控制不同源之间的交互,不同源之间的交互就是属于跨域。
跨域原因
浏览器的同源策略安全机制,同源策略简单说明:协议,域名,端口号都相同才被认为是同源。具体请了解:https://developer.mozilla.org/zh-CN/docs/Web/Security/Same-origin_policy
跨域解决方案
- 本地开启代理服务器,直接访问后台接口。因为服务器与服务器之间不存在跨域,所以通过设置本地服务器去访问目标服务器,然后本地服务器返回数据就不存在跨域。
- CORS解决方案,跨域资源访问,即服务器可以选择,允许跨域请求访问到它们的资源。
Access-Control-Allow-Origin设置为*或指定域名 - 图片的跨域:https://www.zhangxinxu.com/wordpress/2018/02/crossorigin-canvas-getimagedata-cors/
document.domain在iframe嵌套中一级域名相同二级域名不同的情况下设置document.domain=一级域名,之后可以访问各自的window对象了- jsonp,需要定义请求类型jsonp响应后的callback函数(后端配合支持)
- nginx反向代理,通过相同域名访问代理到本地