0

关于CORS的问题:

我使用了带有 swagger api 的 light-codegen。现在我想在我的微服务上启用 CORS。

为此,我做了以下工作:

  1. 在 config 文件夹中添加了一个 cors.yml(与 swagger.json、service.yml、server.yml 相同的位置 ...)
  2. 向 pom.xml 添加了依赖项:groupId: com.networknt artifactId: cors
  3. 将以下行添加到 service.yml,就在 swaggerHandler 下: - com.networknt.cors.CorsHttpHandler

但服务器不会在响应中添加任何 cors 标头。我做错了什么?

4

2 回答 2

0

最后我得到了答案,我们需要在 com.networknt.cors 包中添加PathHandlerProvider 文件。需要从 config 文件夹中删除 handlers.yml 文件。只需仔细检查 service.yml 文件是否与git hub repo 项目中的相同。

这实际上使用 CORS 的可能方法处理跨源请求的飞行前请求(OPTIONS)。

curl -k -H "Origin: http://test123.com" -H "Access-Control-Request-Method: POST"  -H "Access-Control-Request-Headers: X-Requested-With"  -X OPTIONS --verbose https://localhost:8443/v1/postData

响应带有以下标题:

< access-control-allow-headers: X-Requested-With
< server: L
< access-control-allow-credentials: true
< content-length: 0
< access-control-allow-methods: GET
< access-control-allow-methods: POST
于 2019-03-19T15:27:41.270 回答
0

看起来您正在关注旧版本的教程并尝试升级到最新版本的 light-4j 框架。配置文件已更改很多,这可能会增加复杂性。

我已经升级并发布了 CORS 教程,并且在 github 上有一个工作版本的链接。如果您遇到任何问题,请告诉我。谢谢。

https://doc.networknt.com/tutorial/cors/

于 2017-12-11T12:59:47.647 回答