如何在light-4j服务中启用CORS处理程序

问题描述 投票:0回答:2

关于CORS的问题:

我使用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标头。我做错了什么?

cors light-4j
2个回答
0
投票

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

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

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


0
投票

最后我得到了答案,我们需要在com.networknt.cors包中添加PathHandlerProvider file。需要从config文件夹中删除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
© www.soinside.com 2019 - 2024. All rights reserved.