我有一个API服务器,我想从不同的子域访问; API服务器在api.company.com上运行,Web服务器在web.company.com上运行。我们一直在使用反向代理将来自我们的Web服务器的api请求重定向到我们的api服务器 - 但我们的要求正在发生变化,我们需要设置CORS。
为了做到这一点,我已将以下内容添加到我的API服务器的nginx.conf中:
add_header 'Access-Control-Allow-Origin' 'https://web.company.com';
add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
但是,这会导致以下错误:
Request header field Authorization is not allowed by Access-Control-Allow-Headers in preflight response.
然后我添加了以下标题:
add_header 'Access-Control-Allow-Headers' 'Authorization';
但由于某种原因,错误消息会回到我收到的CORS标题之前收到的消息。
No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'https://web.company.com' is therefore not allowed access.
我弹出邮递员以确保标题存在 - 当然,它们是。
Access-Control-Allow-Headers → Authorization
Access-Control-Allow-Methods → GET, POST, PUT, DELETE, OPTIONS
Access-Control-Allow-Origin → https://web.company.com
有没有人对我做错了什么有任何想法?我正在谷歌浏览器中测试这个,51.0.2704.103(官方版)。