1.1同源策略
1.什么是同源
如果两个页面的协议、域名和端口都相同,则两个页面具有相同的源。
比如 http://www.test.com/index.html与http://www.test.com/other.html是同源,而http://www.test.com/index.html与https://www.test.com/index.html不是同源,因为协议不同。
2.什么是同源策略
同源策略是浏览器提供的一个安全功能。
MDN官方给定的概念:同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互,这是一个用于隔离潜在恶意文件的重要安全机制。
通俗理解:浏览器规定,A网站的js,不允许和非同源的网站B之间进行资源的交互。
2.1跨域
1.什么是跨域
跨域是两个URL的协议、域名和端口不一致。
2.出现跨域的根本原因
浏览器的同源策略不允许非同源URL之间进行资源的交互。
3.浏览器对跨域请求的拦截
跨域请求可以正常发起,但跨域请求回来的数据,会被浏览器拦截。
4.如何实现跨域数据请求
实现跨域数据请求,最主要的两种解决方案,分别是JSONP和CORS。
JSONP:兼容低版本ie,是前端程序员为了解决跨域问题,想出来的一种临时解决方案。缺点只支持get请求,不支持post请求。
CORS:W3C标准,属于跨域Ajax请求的根本解决方案,支持GET请求和Post请求,缺点是不兼容某些低版本的浏览器。