4
Cors
yutent edited this page
跨域中间件
框架内置跨域中间件, 支持一键启用, 便可轻松实现跨域访问。
注意: 这里的跨域配置, 只针对常规浏览器的跨域处理。并不能阻止其他方式的请求。
{
cors: {
enabled: false,
credentials: false, // 如果要支持cookie,需要设为 true
origin: [], // 默认不限制, 需要时可配置多个域名 ['abc.com', 'a.foo.com']
maxAge: 14400
}
}
从默认配置中可以看出, 我们想要开启跨域支持, 最简单的做法, 只需要把里面的enabled的值设为true即可。
即, 在入口文件中, 加入以下代码即可开启:
app.set({ cors: { enabled: true } })
有时, 我们并不想这么简单粗暴的开启跨域支持, 需要对来源进行一些基础的校验, 如域名, 这时候就可以在origin字段中配置了, 配置应为一个数组, 允许同时配置多个可信域名。
注意: 这里的域名配置中, 根域名和二级域名、三级域名等, 可认为是同一域名, 只需要填写根域名即可。
app.set({
cors: {
enabled: true,
origin: ['aaa.com', 'bbb.com']
}
}) // 这里不需要再写 'foo.aaa.com' 等二级域名、三级域名了。
如果需要支持cookie, 还需要开启 credentials。
app.set({ cors: { enabled: true, credentials: true } })
另外还有一个 maxAge 缓存时长字段, 根据需要自行设置即可。