JS四种跨域方式

1.JSONP
script标签是不受同源策略限制的,它可以载入任意地方的javascript文件,而不要求同源
jsonp的理念是:我和服务器端约定好一个函数名,当我请求文件的时候,服务端返回一段JavaScript,这段JavaScript调用这个约定好的函数,并且将数据当做参数传入
demo:

index.html


http://x.y.com/xx.js
getWeather({
"城市": “北京”,
"天气":大雾“”
})


2.document.domain
使用条件:
1.有其他页面window 对象的引用
2.二级域名相同
3.协议相同,
4.端口相同
document.domain默认的值是整个域名,所有即使两个域名的二级域名一样,那么他们的document.domain也不一样
demo
两个网站: http://wenku.baidu.comhttp://zhidao.baidu.com
这两个网站都是 http协议, 端口都是80, 二级域名都是 baidu.com
打开http://wenku.baidu.com/,在 console 中输入代码:

document.domain ='baidu.com';
varotherWindow =window.open('http://zhidao.baidu.com/');
我们现在已经发现百度知道的网页已经打开了,在百度知道网页的 console 中输入以下代码:
document.domain ='baidu.com';
现在回到百度文库的网页,我们就可以使用百度知道网页的window对象来操作百度知道的网页了。例如:
vardivs = otherWindow.document.getElementsByTagName('div');
这种方法主要用在控制