Skip to main content

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"]
    • WithMethods:设置跨域允许请求谓词,没有配置则允许所有,string[] 类型
    • AllowCredentials:是否允许跨域请求中的凭据,bool 类型,默认值 true
    • SetPreflightMaxAge:设置预检过期时间,int 类型,默认值 24小时
    • FixedClientToken:是否默认配置 WithExposedHeadersbool 类型,默认 true
    • SignalRSupport:是否启用 SignalR 跨域支持,bool 类型,默认 false

2.3 配置示例

{
"CorsAccessorSettings": {
"PolicyName": "MyPolicy",
"WithOrigins": ["http://localhost:4200", "https://furion.icu"]
}
}

2.4 使用 axios 前端注意事项

由于 axios 对跨域有特定的需要,需要响应报文中添加特定 Header 才能放行,如:Access-Control-Expose-Headers: xxxxx,所以,如果前端使用了 axios 请求,需要添加以下配置:

{
"CorsAccessorSettings": {
"WithExposedHeaders": ["X-Pagination","access-token","x-access-token"]
}
}