添加 Cors

master
yutent 2023-08-30 14:52:09 +08:00
parent e81e96512c
commit d5d00ba709
1 changed files with 46 additions and 0 deletions

46
Cors.md Normal file

@ -0,0 +1,46 @@
框架内置有一个 "一键配置跨域支持" 的中间件。非常简单实用。
```js
{
cors: {
enabled: false,
credentials: false,
origin: [], // ['abc.com', 'a.foo.com']
maxAge: 14400
}
}
```
从[默认配置](https://github.com/bytedo/gmf.core/wiki/默认配置)中可以看出, 我们想要开启跨域支持, 最简单的做法, 只需要把里面的enabled的值设为true即可。
即, 在入口文件中, 加入以下代码即可开启:
```js
app.set({ cors: { enabled: true } })
```
有时, 我们并不想这么简单粗暴的开启跨域支持, 需要对来源进行一些基础的校验, 如域名, 这时候就可以在origin字段中配置了, 配置应为一个数组, 允许同时配置多个可信域名。
注意: 这里的域名配置中, 根域名和二级域名、三级域名等, 可认为是同一域名, 只需要填写根域名即可。
```js
app.set({ cors: { enabled: true, origin: ['aaa.com', 'bbb.com'] } }) // 这里不需要再写 'foo.aaa.com' 等二级域名、三级域名了。
```
如果需要支持cookie, 还需要开启 credentials。
```js
app.set({ cors: { enabled: true, credentials: true } })
```
另外还有一个 maxAge 缓存时长字段, 根据需要自行设置即可。
----
上一节: [⟪路由⟫](https://github.com/bytedo/gmf.core/wiki/Router)
下一节: [⟪控制器⟫](https://github.com/bytedo/gmf.core/wiki/Controller)