主域访问子域Gin API触发CORS错误的排查与解决
问题解决:Gin API跨域CORS错误与AWS目标组配置问题
版本信息
go 1.17 github.com/gin-contrib/cors v1.3.1 github.com/gin-gonic/gin v1.7.7
问题场景
在子域名部署Gin REST API服务后,主域名的React应用通过GET、POST请求该API时触发CORS策略错误:
Access to XMLHttpRequest at 'https://
. .xxx/api/v1/users' from origin 'https:// .xxx' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
尝试三种CORS配置方案均无效:
- Gin默认CORS配置
- 自定义
cors.Config配置 - 手动编写CORS中间件
同时通过curl发送预检请求时返回502 Bad Gateway错误。
根因与解决方法
问题根源在于AWS负载均衡目标组(aws_lb_target_group)配置错误:
仅在Route 53和应用负载均衡(ALB)上配置了ACM证书,但目标组的协议被设置为HTTPS。将目标组协议改为HTTP后,跨域问题完全解决。
内容的提问来源于stack exchange,提问作者Asuha
相关产品推荐
相关产品推荐

