一、同源策略
(一)、含义
1、同源
如果两个页面的协议、域名和端口都相同,则两个页面具有相同的源
2、同源策略(Same origin policy)
是浏览器提供的一个安全功能
MDN官方定义:同源策略限制了从同一源加载的文档或脚本如何与来自另一个源的资源进行交互,这是一个用于隔离潜在恶意文件的重要安全机制。
通俗的理解:浏览器规定,A网站的JavaScript不允许和非同源的B网站进行资源交互
- 无法读取非同源网页的cookie、localStorage和IndexedDB
- 无法接触非同源网页的DOM
- 无法向非同源地址发送Ajax请求
二、跨域
1、跨域的含义
两个URL的协议、域名和端口不一致则是跨域。出现跨域的根本原因是浏览器的同源策略不允许非同源的URL之间进行交互。
2、浏览器对跨域的拦截
浏览器允许发起跨域请求,但是跨域请求回来的数据会被浏览器拦截,无法被页面获取。
3、如何实现跨域数据请求
- JSONP:出现的早,兼容性好,是前端程序员为了解决跨域问题被迫想出来的一种临时解决方案,缺点是只支持get请求
- CORS:出现的晚,是W3C标准,属于跨域Ajax请求的根本解决方案,支持get和post请求,缺点是不兼容某些低版本的浏览器