iframe跨域问题

来源:互联网 发布:linuxmint与ubuntu 编辑:程序博客网 时间:2024/05/22 14:31

   跨域问题真是困扰了许久,查了各种资料,就是觉得项目中的这种跨域(域名不同)是不允许的。没办法,只好去请教大神,正如所料真的真的是不能访问的。哎!没办法,谁让我是菜鸟呢!那么不确信自己的判断。

什么是跨域?

Javascript处于安全方面的考虑(同源策略限制),不允许跨域调用其他页面的对象。也就是“Domains,protocols,posts”不一样就是跨域。
“Domains”就是指的域名,
“protocols”就是协议,分为http和https,
“ports”就是端口名称
需要注意的是:
  1.如果是protocols和ports不一致造成的跨域,前台没有办法解决
  2.域只通过URL的首部,也就是protocols+domain+port来判断是否跨域,不会去判断domain是否对应着相同的IP地址,因此就出现如下几种跨域情况:

URL说明是否跨域http://www.a.com/a.js
http://www.a.com/b.js同protocol,domain,port允许http://www.a.com/a/a.js
http://www.a.com/b/b.js同protocol,domain,port,不同文件夹允许http://www.a.com:8000/a.js
http://www.a.com/b.js同protocol,domain,不同port(默认port:80不允许http://www.a.com/a.js
https://www.a.com/b.js

同domain,port,不同protocol不允许

http://www.a.com/a.js

http://192.168.82.45/b.js




protocol,port,不同domain不允许http://www.a.com/a.js
http://child.a.com/b.js主域相同(a,com)子域不同(www,child)不允许http://www.a.com/a.js
http://a.com/b.js一级域名相同,二级域名不同(同上)不允许http://www.a.com/a.js
http://www.b.com/b.jsprotocol,port,不同domain不允许    此次遇到的问题是:同protocol、port但domain不同,才导致iframe无法跨域问题,对于其他两种允许跨域的情况至今尚未遇到,故还没有尝试过解决方法,待后续完善.......

0 0