我使用light-codegen和swagger api。现在我想在我的微服务上启用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标头。我做错了什么?
答案 0 :(得分:0)
看起来您正在关注本教程的旧版本并尝试升级到最新版本的light-4j框架。配置文件已经发生了很大的变化,这可能会增加复杂性。
我已升级并发布了CORS教程,并在github上有一个工作版本的链接。如果您遇到任何问题,请告诉我。感谢。
答案 1 :(得分:0)
最后我得到了答案,我们需要在com.networknt.cors包中添加PathHandlerProvider file。需要从配置文件夹中删除handlers.yml文件。只需仔细检查service.yml文件是否与git hub repo project中的文件相同即可。
这实际上使用可能的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