跨域:什么是同源策略?
同源策略/SOP(Same origin policy)是一种约定,由Netscape公司1995年引入浏览器,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,浏览器很容易受到XSS、CSFR等攻击。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
同源策略限制以下几种行为:
1.) Cookie、LocalStorage 和 IndexDB 无法读取
2.) DOM 和 Js对象无法获得
3.) AJAX 请求不能发送
解决跨域问题常用的解决方案有两个:
JSONP:利用script标签可跨域的特点,在跨域脚本中可以直接回调当前脚本的函数。
CORS:服务器设置HTTP响应头中Access-Control-Allow-Origin值,解除跨域限制。
但是这两个跨域方案都存在一个致命的缺陷,严重依赖后端的协助。
开发中遇到的每一个接口都需要提前找后端进行特殊处理。而且即使后端愿意帮忙,某些接口也不是随便能开放的(譬如已经在线上正式环境的接口)。 所以依赖后端协助的跨域解决方式都会在一定程度上限制前端的开发进度。
那么有没有前端独立就能解决的跨域方案呢?
有的,我们可以利用「代理」或「反向代理」技术来解决开发中的跨域问题。
https://blog.csdn.net/weixin_33809981/article/details/90281066
(我会了代理再回来补吧)
补充该图,除非用代理
如果服务端受你控制 -->CORS
(其他跨域方式,全是邪教)
如果服务端不受你控制 --> 自建代理服务
参考:
https://segmentfault.com/a/1190000011145364
https://blog.csdn.net/weixin_33809981/article/details/90281066
网友评论