下面我们来看下跨域访问的原理和实现方式
一,跨域原理分析:应用同源策略轻松实现跨域
1.所谓同源是指,域名,协议,端口相同。当浏览器运行一个JS脚本时会进行同源检测,如果不同源是不能执行的。
2.源继承来自about:blank,javascript:和data:URLs中的内容,继承了将其载入的文档所指定的源,因为它们的URL本身未指定任何关于自身源的信息。
3.变更源变更源可以实现基础域相同的不同页面的跨域问题。
如:a.baidu.com/index.html 通过 iframe 引入 b.baidu.com/index.html ,但是a中的JS是不可以操作b中的内容的,但是可以通过修改源来实现。
需要在a和b中都修改domain,即 document.domain = 'baicu.com'
注意:document.doamin的修改必须是当前域或者当前域的基础域
如在a中document.domain = 'b.baidu.com'是报错的
二,跨域方案介绍
下面介绍了7种解决方案:
(1)document.domain + iframe
(2)动态创建script
(3)window.name + iframe
(4)window.postMessage
(5)CORS
(6)JSONP
(7)nginx代理
下面我们来看下具体的用法吧!!!
1,document.domain + iframe
这种方式就是上面说的变更源,
<