CORS策略(跨域资源共享)
先来解释一下什么是跨域
对于每一个网页或者应用来说,都有一个特定的源来进行标识。一个源通常由三部分来确定,分别是协议、域名和端口号。那么当一个页面或应用向另一个页面或应用发起资源请求时,若这三部分中的任何一个不同,那么就是跨域请求资源。平常所说的跨域主要是域名不同。
比如,在我们的项目中,前端界面想要访问手机的数量还剩多少台,那么就需要对后端服务器进行资源请求,因为是前后端分离,所以出现了跨域。
而对于跨域请求,浏览器一般来讲是限制的,因为跨域会使得用户信息泄露,变得不安全。
举一个例子,当我们不小心访问进一个恶意网站时,这个网站请求访问哔哩哔哩,那么当访问到哔哩哔哩的时候,因为客户端还是我们自己,所以恶意网站就就可以收集到我们和哔哩哔哩之间的Cookie信息。
但是为了前后端分离,就必须要允许一些特定的跨域请求。
故而就需要CORS策略
- 确定允许的源,即可以在目标资源的源上设置Access-Control-Allow-Origin来确定哪些源会被允许
- 通过Access-Control-Allow-Methods确定Get,Post,Put,Delete等等这些方法哪几类可以被允许
- 通过Access-Control-Allow-Headers确定请求头中携带哪些信息的请求会被允许
- 处理预检请求,对于一些非简单的请求头或者请求方法是Post,那么浏览器就发送一个预检请求OPTIONS,在后端会返回可以允许的源,方法和请求头等等用来给前端确定是否可以跨域请求。
有了这些之后,就可以更为方便地开发前后端分离的系统了。