同源策略:同源策略是一个重要的安全策略,它用于限制一个源的文档或者它加载的脚本如何能与另一个源的资源进行交互。它能帮助阻隔恶意文档,减少可能被攻击的媒介。
同源策略的作用:保护浏览器中网站的安全,限制ajax只能向同源URL发送请求。
源:Web内容的源由用于访问它的URL的方案(协议)、主机名(域名)和端口定义。只有当协议、主机和端口都匹配时,两个对象才具有相同的源。
同源:网页加载时所在源,和ajax请求时的源(协议、域名、端口号)全部相同即为同源。
跨域问题:从一个源的文档/脚本,加载另一个源的资源就产生了跨域。
跨域解决方案:
1、CORS(跨域资源共享) 只能在开发环境使用
一种基于HTTP头的机制,该机制通过允许服务器标示除了它自己以外的其他源(协议、域名、端口),使得浏览器允许这些源访问加载自己的资源。
a、服务器端:设置 Access-Control-Allow-Origin 响应头字段,允许除了它自己以外的源来访问自己的资源
b、前端:正常发起 AJAX 请求,无需额外操作
2、同源访问
开发环境使用CORS,上线部署关闭CORS,并采用同源访问方式。
让后端服务既可以提供数据接口,也可以返回网页资源(给Web服务注册静态网站访问功能)。
更安全,后端的接口不允许非同源来访问。