同源:指的是两个或者多个网页在一个域下面,必须满足以下三个条件
举例个例子,http://www.baidu.com/index.html
这个网址,协议是http://
,域名是www.baidu.com
,端口号没写默认是80
(https协议中默认端口是443),它的同源情况如下。
跨域:与同源相对,当同源三项条件有一项不满足的时候,就会产生跨域。跨域本质是浏览器基于同源策略的一种安全手段 。
同源策略: 是一种约定,它是浏览器最核心也最基本的安全功能。同源政策的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。
三者关系:当一个页面去调用另一个页面资源的时候,就会产生跨域,这是因为受到了同源政策的约束,不满足同源的条件,所以浏览器不会响应该请求,但是数据还是照样发送给了服务器。
解决跨域的方法有三种:
1.Proxy 。 使用服务器代理,它是一种特殊的网络服务,允许一个(一般为客户端)通过这个服务与另一个网络终端(一般为服务器)进行非直接的连接。
2.CORS 。它是一个系统,它由一系列传输的HTTP头组成,这些HTTP头决定浏览器是否阻止前端 JavaScript 代码获取跨域请求的响应。
3.JSONP。 不发Ajax请求,发出的是 script 请求。利用<script>标签的跨域能力实现跨域数据的访问。