2. 跨域配置
配置智能提示和校验
如需编写配置的时候提供智能提示和校验,可查看 【2.7 JSON Schema 使用】
只需要在 .json
文件头部添加下列配置即可:
{
"$schema": "https://gitee.com/dotnetchina/Furion/raw/v4/schemas/v4/furion-schema.json"
}
2.1 关于配置
跨域配置指的是 Furion
框架客户端跨域配置选项。
2.2 配置信息
CorsAccessorSettings
:配置根节点PolicyName
:跨域策略名,string
类型,必填,默认App.Cors.Policy
WithOrigins
:允许跨域的域名列表,string[]
类型,默认*
WithHeaders
:请求表头,没有配置则允许所有表头,string[]
类型WithExposedHeaders
:设置客户端可获取的响应标头,string[]
类型,默认["access-token", "x-access-token"]
- 默认情况下,若后端输出特定的响应头
Key
,那么需将该Key
配置在数组中
- 默认情况下,若后端输出特定的响应头
WithMethods
:设置跨域允许请求谓词,没有配置则允许所有,string[]
类型AllowCredentials
:是否允许跨域请求中的凭据,bool
类型,默认值true
SetPreflightMaxAge
:设置预检过期时间,int
类型,默认值24小时
FixedClientToken
:是否默认配置WithExposedHeaders
,bool
类型,默认true
SignalRSupport
:是否启用SignalR
跨域支持,bool
类型,默认false
2.3 配置示例
{
"CorsAccessorSettings": {
"PolicyName": "MyPolicy",
"WithOrigins": ["http://localhost:4200", "http://furion.baiqian.ltd"]
}
}
2.4 使用 axios
前端注意事项
由于 axios
对跨 域有特定的需要,需要响应报文中添加特定 Header
才能放行,如:Access-Control-Expose-Headers: xxxxx
,所以,如果前端使用了 axios
请求,需要添加以下配置:
{
"CorsAccessorSettings": {
"WithExposedHeaders": ["X-Pagination","access-token","x-access-token"]
}
}