登录
注册
node.js 学习社区
express 通过header 传递参数,nginx proxypass 跳出坑

这回呢

2017-07-24 18:07

应用端 使用 request 模块提交参数,代码


var client_id=222;
var client_secret='222_passwrd';
request({
        headers:{'client_id':client_id, 'client_secret': client_secret},
        uri:uri,
        encoding:'utf8',
        timeout: 10000,
        json:true,
        method: "GET"
}, function(error, response, body){
         console.log(body);
});

服务端 直接使用 express 的req.header.xxx 获取


var client_id = req.header('client_id');
var client_secret = req.header('client_secret');
console.log(client_id,client_secret);
我草,傻逼了,获取不到呢,


一顿自我检查,自我批评,自我重做,然并卵还是不行,娘希匹的,后来发现是nginx proxy 的时候没有传递过来,加上个恶心的属性,underscores_in_headers on;


server {
        listen  80;
        server_name  www.xxx.com;
        underscores_in_headers on;
        root  /data/static;
        location / {
                proxy_http_version  1.1;
                proxy_pass          http://127.0.0.1:3000;
                proxy_connect_timeout 90;
                proxy_send_timeout 90;
                proxy_read_timeout 90;
                proxy_set_header    client_id $http_client_id;
                proxy_set_header    client_secret $http_client_secret;
                proxy_set_header    X-Real-IP $remote_addr;
                proxy_set_header    Connection "";
                proxy_set_header    Host $http_host;
                proxy_set_header    X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

齐活!

underscores_in_headers on; 因为我的变量名带了下划线,所以只有把这个熟悉打开,才会转过去,你怎么不恶心死我呢!



回复 · 0

发表回复

你可以在回复中 @ 其他人