Nginx location 中如何基于upstream应用中的请求头是否存在来做不同处理

发布于 2022-09-12 13:43:31 字数 737 浏览 23 评论 0

背景

后端代码中对部分接口做了处理 支持跨域请求

@CrossOrigin(allowCredentials = "true")

但是后面又有新的接口 需要支持跨域 故为了方便起见 直接在Nginx层统一支持

add_header Access-Control-Allow-Origin $http_origin;

这样配置后 虽然新接口OK了 但是之前代码中已经显式支持跨域的接口就用不了了

The 'Access-Control-Allow-Origin' header contains multiple values 'https://foo.com, https://foo.com', but only one is allowed.

问:
Nginx location 中怎么动态添加Access-Control-Allow-Origin呢

location /api {
    proxy_pass xxx;
    if (Access-Control-Allow-Origin not exists ) {
        add_header Access-Control-Allow-Origin $http_origin;
    }
}

注:
Nginx 版本

nginx version: nginx/1.4.7

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

提笔落墨 2022-09-19 13:43:31

if ($http_Access_Control_Allow_Orign = '')

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文