跨域DOMAIN实现原理
2016-05-20 17:00
357 查看
对于主域相同而子域不同的例子,可以通过domain的办法解决跨域问题,例如:
http://www.a.com/a.html和http://script.a.com/b.html
可以在两个文件中分别添加上document.domain =
‘a.com’,然后通过a.html文件中创建一个iframe,去控制iframe的contentDocument,这样两个js文件之间就可以交互了
注意:这种办法只适用于主域相同而子域不同的情况
具体实现:
a.html
document.domain = ‘a.com’;
var ifr = document.createElement(‘iframe’);
ifr.src = ‘http://script.a.com/b.html’;
ifr.style.display = ‘none’;
document.body.appendChild(ifr);
ifr.onload = function(){
var doc = ifr.contentDocument || ifr.contentWindow.document;
//在这里操纵b.html
alert(123);
}
b.html
document.domain = ‘a.com’;
缺点:
1、安全性,当一个站点被攻击后,另一个站点会引起安全漏洞
2、如果一个页面引入多个iframe,要想操纵所有的iframe,必须设置相同的domain
http://www.a.com/a.html和http://script.a.com/b.html
可以在两个文件中分别添加上document.domain =
‘a.com’,然后通过a.html文件中创建一个iframe,去控制iframe的contentDocument,这样两个js文件之间就可以交互了
注意:这种办法只适用于主域相同而子域不同的情况
具体实现:
a.html
document.domain = ‘a.com’;
var ifr = document.createElement(‘iframe’);
ifr.src = ‘http://script.a.com/b.html’;
ifr.style.display = ‘none’;
document.body.appendChild(ifr);
ifr.onload = function(){
var doc = ifr.contentDocument || ifr.contentWindow.document;
//在这里操纵b.html
alert(123);
}
b.html
document.domain = ‘a.com’;
缺点:
1、安全性,当一个站点被攻击后,另一个站点会引起安全漏洞
2、如果一个页面引入多个iframe,要想操纵所有的iframe,必须设置相同的domain
相关文章推荐
- ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint......
- ERROR 1452 (23000): Cannot add or update a child row: a foreign key constraint......
- DllMain操作不当造成死锁
- DllMain操作不当造成死锁
- DllMain操作不当造成死锁
- DllMain操作不当造成死锁
- DllMain操作不当造成死锁
- DllMain操作不当造成死锁
- DllMain操作不当造成死锁
- DllMain操作不当造成死锁
- DllMain操作不当造成死锁
- x265main函数流程图
- CPaintDC, CClientDC与CWindowDC的区别
- 关于nmap的”dnet: Failed to open device eth1“错误解决
- [计网学习笔记(3)] Email应用
- 小型机IBM P550 AIX 更换硬盘步骤 操作LVM及文件系统
- x64 Tail Call Elimination
- 人工智能简介
- Toy Program——线程同步。涉及wait(),notifyall(),runnable,toString
- 人工智能模拟进化