首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么nginx不添加add_header标头?

为什么nginx不添加add_header标头?
EN

Stack Overflow用户
提问于 2018-10-23 04:38:23
回答 1查看 0关注 0票数 0

我在Ubuntu上安装了nginx 1.15.5,我无法想出在我的http响应中添加“Access-Control-Allow-Headers”或其他标头。特别是我正在使用代理服务器(Nginx)将所有请求发送到.NET CORE应用程序上的Kestrel服务器。当Chrome尝试调用Kestrel Web服务器的API方法时,Chrome会在控制台中写入:

代码语言:javascript
复制
"Request header field Content-type is not allowed by Access-Control-Allow-Headers in preflight response."

我对“Access-Control-Allow-Origin”有同样的问题,但我解决了我的问题,添加到“默认”文件配置了"add_header 'Access-Control-Allow-Origin' '*';"

当我尝试:

代码语言:javascript
复制
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';

我在回复中没有看到此标题,因此Chrome不允许我继续访问该网站。

nginx webserver的响应
nginx webserver的响应

这是我在nginx中的“默认”配置文件:

代码语言:javascript
复制
 # Default server configuration
#
server {
    listen        80;
    server_name   (myservername);

    add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';
    add_header 'Access-Control-Allow-Origin' '*';

    location / {    
        proxy_pass         http://localhost:5000;
        proxy_http_version 1.1;
        proxy_set_header   Upgrade $http_upgrade;
        proxy_set_header   Connection keep-alive;
        proxy_set_header   Host $host;
        proxy_cache_bypass $http_upgrade;
        proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header   X-Forwarded-Proto $scheme;
    }

}

我还配置了kestrel Web服务器以允许任何源,任何标头等...

有人可以帮我理解,为什么nginx不会添加这个标题?

EN

回答 1

Stack Overflow用户

发布于 2018-10-23 14:00:04

根据文档add_header

可能有几个add_header指令。当且仅当在当前级别上没有定义add_header指令时,这些指令才从前一级继承。

虽然它没有调用它,proxy_pass但很可能用于add_header添加返回的标题,从而删除以前的级别add_header

为了使这个工作添加always到你的结束add_header

代码语言:javascript
复制
add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type' always; 
add_header 'Access-Control-Allow-Origin' '*' always;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100002966

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档