使用Caddy 2和express时的CORS问题
我有一个nodejs express服务器作为反向代理在服务器后面运行 Caddy正在docker上运行,docker compose中的配置如下使用Caddy 2和express时的CORS问题,express,cors,caddy,caddyfile,Express,Cors,Caddy,Caddyfile,我有一个nodejs express服务器作为反向代理在服务器后面运行 Caddy正在docker上运行,docker compose中的配置如下 caddy: 图片:球童 重新启动:始终 端口: - "443:443" - "80:80" 网络: -主网络 卷数: -“/Caddyfile:/etc/caddy/Caddyfile” 使用以下Caddyfile: my-nice-site.com { reverse_proxy /* server:4030 } 当为网页和API提供服务
caddy:
图片:球童
重新启动:始终
端口:
- "443:443"
- "80:80"
网络:
-主网络
卷数:
-“/Caddyfile:/etc/caddy/Caddyfile”
使用以下Caddyfile:
my-nice-site.com {
reverse_proxy /* server:4030
}
当为网页和API提供服务时,设置工作得很好,但是,当我尝试使用不同来源的javascript访问时,我遇到了CORS问题
我已经使用express在express服务器中设置了CORS,它在单独使用时可以正常工作,但在Caddy后面运行它时,我一直得到它,因此我想我需要在我的Caddyfile中进行一些配置以允许CORS,但我找不到任何适合我的设置的东西。我设法解决了我的问题:
express正确设置了标题,我在使用curl或Postman请求时得到了标题,而没有在Caddy中更改任何内容 问题是,我向
http
发出请求,Caddy将这些请求重定向到https
,这对于从邮递员发送的GET
请求没有问题,但是(OPTIONS
)不支持重定向,并且由于Caddy进行重定向,因此无法到达express(和CORS设置),抛出错误
最后,解决方案是简单地向https://my-nice-server.com