标签:网页 跨域 规避 window Cookie 同源 浏览器 document 窗口
含义
- 同源:
协议相同
域名相同
端口相同
限制范围
- Cookie、LocalStorage 和 IndexDB 无法读取
- DOM 无法获得
- AJAX 请求不能发送
document.domain
- 一级域名相同,二级域名不同
Cookie
- 只有同源的网页才可以共享
- 两个网页一级域名相同,只是二级域名不同,浏览器允许通过设置
document.domain
共享 Cookie - 适用于 Cookie 和 iframe
- 例
A 网页:http://w1.example.com/a.html
B 网页:http://w2.example.com/b.html
设置相同的document.domain
A 网页设置一个 Cookie
B 网页读取这个 Cookie
iframe
- 如果两个网页不同源,就无法拿到对方的 DOM
- iframe 窗口和 window.open 方法打开的窗口,无法与父窗口通信
- 如果两个窗口一级域名相同,只是二级域名不同,可以通过 document.domain 属性,就可以规避同源政策,拿到DOM
- 用 document.domain + iframe实现跨域
完全不同源
片段标识符
- 父窗口可以把信息,写入子窗口的片段标识符
var src = originURL + '#' + data; document.getElementById('myIFrame').src = src;
- 子窗口通过监听 hashchange 事件得到通知
window.onhashchange = checkMessage; function checkMessage() { var message = window.location.hash; // ... }
- 子窗口也可以改变父窗口的片段标识符
parent.location.href= target + "#" + hash;
window.name
- 无论是否同源,只要在同一个窗口里,前一个网页设置了这个属性,后一个网页可以读取它
- window.name + iframe 解决跨域问题
window.postMessage
webSocket 解决跨域问题
Ajax跨域
标签:网页,跨域,规避,window,Cookie,同源,浏览器,document,窗口 来源: https://blog.csdn.net/AnitaSun/article/details/121647201
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。