同源策略(Same origin policy)使得来自于不一样来源的脚本,没法读取或修改当前源对象。它是浏览器最核心也是最基本的安全功能。css
若是域名或 IP 地址、端口与协议都相同,那么就会被断定为同源。html
假设有这么一个 URL:http://www.deniro.net
,下表中的 URL 与此比较,判断是否同源:vue
URL | 是否同源 | 缘由 |
---|---|---|
http://www.deniro.net/welcome.html |
同源 | - |
https://www.deniro.net/welcome.html |
不一样源 | 协议不一样 |
http://www.deniro.net:8080/welcome.html |
不一样源 | 端口号不一样 |
http://book.deniro.net/welcome.html |
不一样源 | 域名不一样 |
<script>
、<img>
、<iframe>
、<link>
标签不受同源策略限制,能够跨域加载资源。 好比咱们能够在咱们的项目中加载 CDN 上的 Vue.js: <script src="https://cdn.bootcss.com/vue/2.2.2/vue.min.js"></script>
跨域
CDN 的全称是 Content Delivery Network ,即 内容分发网络 。CDN 是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,经过中心平台的负载均衡 、 内容分发 、 调度等功能模块,使用户就近获取所需内容,下降网络拥塞,提升用户访问响应速度和命中率 。浏览器
这些标签加载资源时,浏览器会发起 Get 请求,获取这些资源。但在加载 JavaScript 时,限制了读写返回内容的权限。安全
XMLHttpRequest 对象能够与服务器交换数据。具体功能以下:服务器
为了安全起见,XMLHttpRequest 对象,在默认状况下,不能跨域访问资源,因此在 Ajax 开发中必定要注意哦O(∩_∩)O~网络
浏览器会经过目标域所返回的 HTTP 头(Access-Control-Allow-Origin)来断定是否容许跨域访问,由于 JavaScript 没法操纵 HTTP 头。负载均衡