Web 项目配置 cors 的三种方式。
Cors 属性
名称 | 类型 | 可选项 | 默认值 | 有效值 | 描述 |
---|---|---|---|---|---|
allow_origins | string | 可选 | “*” | 允许跨域访问的 Origin,格式如:scheme ://host :port ,比如: https://blog.yl-online.top 。多个值使用 , 分割,allow_credential 为 false 时可以使用 * 来表示所有 Origin 均允许通过。你也可以在启用了 allow_credential 后使用 ** 强制允许所有 Origin 都通过,但请注意这样存在安全隐患。 |
|
allow_methods | string | 可选 | “*” | 允许跨域访问的 Method,比如: GET ,POST 等。多个值使用 , 分割,allow_credential 为 false 时可以使用 * 来表示所有 Origin 均允许通过。你也可以在启用了 allow_credential 后使用 ** 强制允许所有 Method 都通过,但请注意这样存在安全隐患。 |
|
allow_headers | string | 可选 | “*” | 允许跨域访问时请求方携带哪些非 CORS 规范 以外的 Header, 多个值使用 , 分割,allow_credential 为 false 时可以使用 * 来表示所有 Header 均允许通过。你也可以在启用了 allow_credential 后使用 ** 强制允许所有 Header 都通过,但请注意这样存在安全隐患。 |
|
expose_headers | string | 可选 | “*” | 允许跨域访问时响应方携带哪些非 CORS 规范 以外的 Header, 多个值使用 , 分割,allow_credential 为 false 时可以使用 * 来表示允许任意 Header 。你也可以在启用了 allow_credential 后使用 ** 强制允许任意 Header,但请注意这样存在安全隐患。 |
|
max_age | integer | 可选 | 1800 | 浏览器缓存 CORS 结果的最大时间,单位为秒,在这个时间范围内浏览器会复用上一次的检查结果,-1 表示不缓存。 |
|
allow_credential | boolean | 可选 | false | 是否允许跨域访问的请求方携带凭据(如 Cookie 等)。根据 CORS 规范,如果设置该选项为 true ,那么将不能在其他选项中使用 * 。 |
WebMvcConfigurer
1 | package xx.xxx; |
WebSecurityConfigurerAdapter
参考:https://docs.spring.io/spring-security/site/docs/current/reference/html5/#cors
1 |
|
Web Filter
如果以上两种配置方式都不生效,可以试试这种方式
1 | package xx.xxx; |