CORS (Cross-Origin Resource Sharing,跨源资源共享) 是一种机制,允许浏览器向跨源服务器发出请求,从而克服了浏览器的同源策略限制。
同源策略是浏览器的安全功能,限制了从一个源加载的文档或脚本如何与来自另一个源的资源进行交互。所谓"同源"是指相同的协议、域名和端口号。
当前端应用需要访问不同源的API时,就需要CORS支持。例如:
https://frontend.com
https://api.backend.com
没有CORS,浏览器会阻止前端应用访问API服务。
CORS通过一系列HTTP头实现跨域访问控制:
由于浏览器会发送 Method::OPTIONS
的预检请求,所以需要增加对此类请求的处理,需要把CORS中间件添加到 Service
上.
Salvo提供了内置的CORS中间件,可以轻松配置和使用。以下是示例代码:
注意.hoop(cors)中间件是作用在 Service
上的,注意.hoop(cors)中间件是作用在 Service
上的.注意.hoop(cors)中间件是作用在 Service
上的,而不是 Router
上的.
这样可以自动处理option预检.
示例代码
CORS中间件提供了多种配置选项:
通过合理配置CORS,可以既保证安全性,又满足跨域访问的需求.