![b0f9e4ea005e07eaa54379a80e0ee859.png](https://img-blog.csdnimg.cn/img_convert/b0f9e4ea005e07eaa54379a80e0ee859.png)
CORS 是一个 W3C 标准,全称是"跨域资源共享"(Cross-origin resource sharing)。CORS 需要浏览器和服务器同时支持。目前,所有浏览器都支持该功能,IE 浏览器不能低于 IE10。
整个 CORS 通信过程,都是浏览器自动完成,不需要用户参与。对于开发者来说,CORS 通信与同源的 AJAX 通信没有差别,代码完全一样。浏览器一旦发现 AJAX 请求跨源,就会自动添加一些附加的头信息,有时还会多出一次附加的请求,但用户不会有感觉。
因此,实现 CORS 通信的关键是服务器。只要服务器实现了 CORS 接口,就可以跨源通信。
实现与使用
Malagu 框架提供的跨域设置能力是通过集成开源库 cors 实现的。将开源库 cors 的配置能力通过 Malagu 组件属性暴露出来,我们只需要使用组件属性配置跨域访问规则即可。框架默认运行所有源站跨域访问,在正式环境务必设置跨域规则,避免出现安全问题。
malagu:
web:
cors:
origin: https://www.cellbang.com # 允许 https://www.cellbang.com 跨域访问
malagu:
web:
cors:
origin: ${{'cellbang.com$'|regexp}} # 允许以 cellbang.com 为后缀的源站跨域访问
malagu:
web:
cors:
origin:
- https://www.abc.com
- ${{'cellbang.com$'|regexp}}
相关链接
- Malagu 框架项目地址
- Malagu 框架文档地址