尽管存在标头,但无法使用CORS访问跨域资源

时间:2016-07-14 18:16:52

标签: nginx cors

我有一个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(官方版)。

0 个答案:

没有答案