KONG插件解决api-config is not allowed by Access-control-Allow-Headers的问题
时间: 2024-01-18 20:03:00 浏览: 174
已解决:No 'Access-Control-Allow-Origin'跨域问题
5星 · 资源好评率100%
`api-config` 是自定义的 HTTP 请求头,而 `Access-Control-Allow-Headers` 是服务器响应中的一个 CORS(跨来源资源共享)头,用于指定服务器允许客户端发送的请求头。
如果客户端发送的请求头不在服务器允许的头列表中,服务器就会返回一个 `api-config is not allowed by Access-Control-Allow-Headers` 类似的错误。
要解决这个问题,可以使用 Kong API 网关的 `cors` 插件。这个插件可以自动为响应头添加 `Access-Control-Allow-Headers`,从而允许客户端发送自定义的请求头。
以下是如何在 Kong 中启用 `cors` 插件的步骤:
1. 安装 `cors` 插件:
```
$ sudo luarocks install kong-oidc
```
2. 在 Kong 中创建一个新的服务或路由:
```
$ curl -i -X POST \
--url http://localhost:8001/services/ \
--data 'name=my-service' \
--data 'url=http://my-service.com'
```
或者:
```
$ curl -i -X POST \
--url http://localhost:8001/routes/ \
--data 'hosts[]=my-host.com' \
--data 'paths[]=/my-path' \
--data 'service.name=my-service'
```
3. 为该服务或路由启用 `cors` 插件:
```
$ curl -i -X POST \
--url http://localhost:8001/services/my-service/plugins/ \
--data 'name=cors' \
--data 'config.origins=*' \
--data 'config.methods=GET, POST, PUT, DELETE' \
--data 'config.headers=api-config, Authorization'
```
注意:这里的 `config.headers` 参数中包含了 `api-config` 请求头。
现在,客户端就可以发送带有 `api-config` 请求头的请求,而不会收到 `api-config is not allowed by Access-Control-Allow-Headers` 的错误了。
阅读全文