在浏览器中,出于安全性考虑,存在一个同源策略,他限制来自一个源的网页在无权限的情况下去访问另一个源的资源
同源有以下要求:
https / http
)不满足以上任一条件的即为跨域
是出于安全考虑,防止恶意网站窃取数据,例如跨站脚本攻击、跨站请求伪造等攻击。如果没有限制, 恶意网站就可以随意读取你在其它网站的敏感信息如cookie、localStorage、token等
同源策略只限制浏览器
前端页面在https://example.com
,后端api接口在https://api.example.com
前端在443
端口,后端在80
端口,也算跨域
页面是https
,接口是http
CORS
(跨域资源共享,cross-origin resource sharing)原理:服务器在http响应头中添加相应字段,声明允许的跨域源
常见响应头:
access-control-allow-origin: https://example.com
允许的源,可以是 * 代表所有
access-control-allow-methods: GET,POST,PUT