解决跨域问题

协议、域名、端口,只要有一个不同就会造成跨域问题
1. 主域和子域的区别
- 主域一般在域名后半段,只含有一个.
- 子域一般是包括主域的字段
2. location.hash
- #代表网页的一个位置,右面的字符就是该位置的表示符,通过location.hash可以读写hash
- 为网页位置指定标识符,有两个方法
- 一是使用 瞄点,例如
- 二是使用id属性,比如< div id=”print”><\div>
- 发送http请求时,并没有将hash发送。hash只是用来指导浏览器动作的,对服务器并没有作用
- h5中新增onhashchange事件,当#值改变时,就会触发这个事件
原文链接
3. window.name
- window.open()打开新网页时,第二个参数就是此网页的name
- 还有在iframe中,有个name属性
- 作用 是判断当前window的名称,比如一个页面中含有很多个iframe时,就可以用window.name得到当前window的名称

一共八种方法解决跨域问题原文链接
1. document.domain + iframe (只有在主域相同的时候才能使用该方法)
2. 动态创建script (是因为script、iframe、img等含有src属性的标签都不受同源策略的限制)
3. location.hash + iframe
4. window.name + iframe(name值在不同的页面甚至域名加载后依旧存在,且支持最大2MB的数据) 使用window.name解决跨域问题
5. postMessage(HTML5中的XMLHttpRequest Level 2中的API)
6. CORS(跨域资源共享cross-origin resource sharing )跨域资源共享 CORS 详解
7. JSONP(最重要的一种方法,使用回调函数和数据) json和jsonP的区别
8. web sockets

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值