docs/docs/rules/resCors.md
设置响应阶段的跨域资源共享(CORS))头部信息,解决跨域请求问题。
pattern resCors://value [filters...]
| 参数 | 描述 | 详细文档 |
|---|---|---|
| pattern | 匹配请求 URL 的表达式 | 匹配模式文档 |
| value | CORS 对象,支持从以下渠道获取: | |
| • 目录/文件路径 | ||
| • 远程 URL | ||
| • 内联/内嵌/Values内容 | 操作指令文档 | |
| filters | 可选过滤器,支持匹配: | |
| • 请求URL/方法/头部/内容 | ||
| • 响应状态码/头部 | 过滤器文档 |
CORS 对象结构:
origin: *
methods: POST
headers: x-test
credentials: true
maxAge: 300000
对应响应头:
access-control-allow-origin: *
access-control-allow-methods: POST
access-control-allow-headers: x-test
access-control-allow-credentials: true
access-control-max-age: 300000
请求方法为
OPTIONS时,access-control-allow-headers->access-control-expose-headers
匹配模式:
pattern resCors://*
对应的响应头:
access-control-allow-origin: *
说明:此设置将
Access-Control-Allow-Origin设为*,允许任意域名跨域请求资源。适用于公开 API 或无需携带凭证的场景。
匹配模式:
pattern resCors://use-credentials
对应的响应头:
access-control-allow-credentials: true
access-control-allow-origin: http://request-host
说明:此设置同时添加两个响应头:
Access-Control-Allow-Credentials: true表示允许跨域请求携带 Cookie、Authorization 等凭证。Access-Control-Allow-Origin精确设置为当前请求的源(http://request-host),而非通配符*。
这符合规范要求:当启用凭证时,不得使用*作为允许的源。
access-control-allow-origin: *(不支持带 cookie)
www.example.com/path resCors://*
# `enable` 表示根据请求头 `origin` 设置 access-control-allow-origin: http://reqOrigin
# 及设置 access-control-allow-credentials: true
www.example.com/path2 resCors://enable
``` cors.json
origin: *
methods: POST
headers: x-test
credentials: true
maxAge: 300000
```
www.example.com/path resCors://{cors.json}
# 对 OPTIONS 请求不处理
www.example.com/path2 resCors://{cors.json} excludeFilter://m:options
设置响应头:
access-control-allow-origin: *
access-control-allow-methods: POST
access-control-allow-headers: x-test
access-control-allow-credentials: true
access-control-max-age: 300000
www.example.com/path1 resCors:///User/xxx/test.json
www.example.com/path2 resCors://https://www.xxx.com/xxx/params.json
# 通过编辑临时文件
www.example.com/path3 resCors://temp/blank.json