同源策略
受同源策略限制,JavaScript不能跨域! 这里提到了同源策略,那么什么是同源策略呢?
同源策略(Same Origin Policy),它是由Netscape提出的一个著名的安全策略。 现在所有支持JavaScript 的浏览器都会使用这个策略。同源策略阻止从一个域上加载的脚本去获取或操作另一个域上的文档属性。也就是说,受到请求的 URL 的域必须与当前 Web 页面的域相同。这说明浏览器隔离来自不同源的内容,以防止它们之间的操作。
为何要使用同源策略? 答案:安全! 一个简单的例子:比如一个黑客,他利用Iframe把真正的银行登录页面嵌到他的页面上,当你使用真实的用户名,密码登录时,他的页面就可以通过Javascript读取到你的表单中input中的内容,这样用户名,密码就轻松到手了。后果会非常严重!
那么什么才是同源?
所谓同源是指域名,协议,端口均相同。
同源的几种情况:
1.不同域名属于跨域,如:www.a.com和www.b.com,另外www.a.com 和www.a.com.cn 也属于不同域名。
2.主域名和子域名(二级域名、三级域名等)跨域,如:www.a.com 和 sub.a.com
属于跨域,sub.a.com 和 sub1.a.com 之间也是跨域。
属于跨域,sub.a.com 和 sub1.a.com 之间也是跨域。
3.不同协议属于跨域,如:http://www.a.com 和 https://www.a.com。
4.不同端口,如: www.a.com:80和 www.a.com:81 。
5.IP和域名属于跨域,如:123.125.106.16 和 www.weibo.com。