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