什么是同源
如果两个页面的协议,域名和端口都相同,则两个页面具有相同的源
例如,下表给出了相对于https://www.test.com/index.html页面的同源检测:
什么是同源策略
同源策略是浏览器提供的一个安全功能
通俗理解为: 浏览器规定,A网站的Javascript不允许和非同源的网站C之间进行资源的交互,例如:
- 无法读取非同源网页的Cookie.LocaStorage和IndexedDB
- 无法接触非同源网页的DOM
- 无法向非同源地址发送Ajax请求
跨域
什么是跨域
同源是指两个URL协议,域名,端口一致,繁殖,则是跨域
出现跨域的基本原因: 浏览器的同源策略不允许非同源的URL之间进行资源的交互
浏览器对跨域请求的拦截
浏览器允许发起Ajax跨域请求,也能够正常接收到跨域相应的数据,但是数据会被同源策略拦截下来 ,无法被页面获取到
如何实现跨域数据请求
实现跨域数据请求,最主要的两种解决方案分别是JSONP和CORS
JSONP: 出现的早,兼容性好(兼容低版本IE),是前端程序员为了解决跨域问题,被迫想出来的一种临时解决方案,缺点是只支持GET请求,不支持POST请求
CORS: 出现的较晚,他是W3C标准,属于跨域Ajax请求的根本解决方案,支持GET和POST请求,缺点是不兼容缪杰低版本的浏览器