相信很多朋友在学习ajax的时候,对"同源策略"都比较模糊.下面我用最简单的例子说明什么是"同源策略".
所谓同源,就是指协议相同,域名相同,端口号相同.这三者缺一不可.否则即为不同源.也就是我们所说的"跨域了";
比如下面这个网站:http://www.qingwaxiezi.com/qingwa/xiezi.html;
http:// 就是 协议; www.qingwaxiezi.com 就是 域名; 80是端口号(这里需要说明,端口号默认是80,默认可以不写.但是如果不是80,一定得写;);
根据我们上面所说的判断下面的例子:
http://www.qingwaxiezi.com/qingwa/page.html; //协议,域名,端口号都相同. 同源
http://qingwaxiezi.com/qingwa/xiezi.html; // 域名不同, 不同源;
http://qing.www.qingwaxiezi.com/qingwa/xiezi.html; // 域名不同, 不同源;
http://www.qingwaxiezi.com:81/qingwa/xiezi.html; // 端口号不同, 不同源;
https://www.qingwaxiezi.com/qingwa/xiezi.html; // 协议不同,不同源;
通常以上的判断.相信大家都明白什么是同源和不同源了.那应该有人还在疑惑,这玩意儿到底有啥作用.它是干啥的?
其实,同源策略最早是由大名鼎鼎的网景公司引入到浏览器的.直到后来各大浏览器都引入了它. 同源策略的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据; 举个例子你就明白了;
比如你在网站上登录了你的支付宝账户,然后浏览器保存了cookie存储了你的一些隐私信息.比如账户余额啥的.然后你又打开另一个网站,当然了,这种网站往往都是不太好的网站,比如木马啥的.男人们都懂得. 但是如果没有同源限制,那么,这个不好的网站就可以窃取到你的支付宝信息了.从而引起个人信息的泄露.所以才有了同源策略的限制.也就是你在打开另一个网站的时候,虽然它很可能是木马,但是它的协议,域名,端口号只要有一个和你的支付宝网站不同.他就访问不到. 所以,同源策略就是干这个用的. 当然了,这只是其中一种.如果没有同源限制,安全隐患要比我举这个例子大的多的多.
这下小伙伴们估计都明白了吧.