0
点赞
收藏
分享

微信扫一扫

CORS

小沙坨 2021-09-24 阅读 45
日记本

写在前面:闲来无事,突然想到这个问题,就写出来分享一波,如下诉有不对的地方,望各位业内大佬圈出,共同进步,喷子绕行,蔡徐坤粉丝出门左转。

cors顾名思义,cross-orgin-resource-sharig跨域资源共享。那什么是域呢,域名?对的,就是这吊东西,我们这里所说的域是由protocol,orgin,port组成的。

我们还是先把浏览器同源策略说道说道,就是在浏览器访问资源的时候,只能访问同一个源头的规定,懂了吗?没懂我继续,例如百度只能访问百度的应用服务器,谷歌只能访问谷歌的应用服务器,上面只是打个比方,但其实百度后台是有做跨域资源共享的。

cors是遵循w3c标准的,所以现在绝大部分的浏览器都做了跨域处理,浏览器会把所有的请求分为简单跨域请求和非简单跨域请求。简单请求和非简单请求具体内容小编也记不得了,请自行百度。

那是怎么实现的呢?加入我们现在的项目是前后分离的,前端代码部署在服务器一上,后端程序部署在二上,这个时候是不是就是两个不同的域在交互数据?对吧。我们这个时候可以在后端拦截器上设置header,access-control.......:*,就可以了,这个时候如果请求成功,浏览器控制台就会有这些reponse的header中设置这个access-control……,好了,搞定。复杂请求会先进行一次预检,预检通过的话就会在正式请求,复杂请求会在header中增加Access-Control-Request-Method这个吊东西,一次预检通过后,以后每次请求都不用预检了。都会携带Access-Control-Request-Method这些在header中。

上面只是跨域解决方案中的一种,方法有七八中,例如nginx反向代理啊等等。晚安。

举报

相关推荐

0 条评论