浏览器的同源策略和跨域问题
要理解跨域问题,必须得知道什么是同源策略。
什么是同源策略?
何谓同源:
URL由协议、域名、端口和路径组成。
如果两个URL的协议、域名和端口相同,则表示他们同源。
同源策略:
浏览器的同源策略,限制了来自不同源的"document"或脚本,对当前"document"读取或设置某些属性。
从一个域上加载的脚本不允许访问另外一个域的文档属性。
举个例子:
比如一个恶意网站的页面通过iframe嵌入了银行的登录页面(二者不同源),如果没有同源限制,恶意网页上的javascript脚本就可以在用户登录银行的时候获取用户名和密码。
什么是跨域?
跨域有两方面含义:域名不同;
域名相同,但是端口不同。
只有域名相同,端口相同,才可以访问网页资源。
跨域指的是不同域名之间相互访问。例如我的电脑上有两个服务器192.168.0.11和192.168.0.12,如果第一个服务器上的页面要访问第二个服务器
就叫做跨域,或者http://www.baidu.com 要访问http://www.xxx.com 也是不同的域名,这种也叫跨域,所以无论是协议不同,端口不通,还是域名不同都会产生跨域。
在java开发项目中,我们讲的跨域一般指的是js中的ajax请求跨域。