Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
打印网页';使用JavaScript创建HTTP头_Javascript_Nginx_Header_Html Helper - Fatal编程技术网

打印网页';使用JavaScript创建HTTP头

打印网页';使用JavaScript创建HTTP头,javascript,nginx,header,html-helper,Javascript,Nginx,Header,Html Helper,因此,我有一个基于nodejs框架构建的webapp。目前,我正在使用一个使用OIDC进行身份验证的NGINX反向代理。一旦用户通过身份验证,它就会将其转发到nodejs后端 我想从从反向代理传递到后端的标题中获取用户的电子邮件地址,并将其打印在我的主页上,这样它就会说欢迎XXX 现在我可以看到,如果我在app.js中添加以下内容,它会将标题打印到命令行,这样我就知道它正在被传递,但我不知道实现这一点需要什么javascript app.get('/home', function (req) {

因此,我有一个基于nodejs框架构建的webapp。目前,我正在使用一个使用OIDC进行身份验证的NGINX反向代理。一旦用户通过身份验证,它就会将其转发到nodejs后端

我想从从反向代理传递到后端的标题中获取用户的电子邮件地址,并将其打印在我的主页上,这样它就会说欢迎XXX

现在我可以看到,如果我在app.js中添加以下内容,它会将标题打印到命令行,这样我就知道它正在被传递,但我不知道实现这一点需要什么javascript

app.get('/home', function (req) {
  console.log(req.headers);
});
这里的示例确实为我提供了一个弹出窗口,但它没有显示我需要的信息,即“x用户”:fffffff@ffff.fff"

我也尝试过这个代码,但它没有为我拿起它

<script>
function getClientIP(req){
    return req.headers['x-user'];
}
</script>
<h3><b><script>getClientIP();</script></b></h3>

函数getClientIP(请求){
返回请求头['x-user'];
}
getClientIP();
我已将此打印到console.log,因此我知道x-user在请求中存在。

已解决此问题

    <script>
    function parseHttpHeaders(httpHeaders) {
        return httpHeaders.split("\n")
         .map(x=>x.split(/: */,2))
         .filter(x=>x[0])
         .reduce((ac, x)=>{ac[x[0]] = x[1];return ac;}, {});
    }
    var req = new XMLHttpRequest();
    req.open('HEAD', document.location, false);
    req.send(null);
    var headers = parseHttpHeaders(req.getAllResponseHeaders());
    </script>

    <script>
    function here() {
     document.write(JSON.stringify(headers["x-user"]));
    }
    </script>


<h3><b><script>here();</script></b></h3>

函数parseHttpHeaders(httpHeaders){
返回httpHeaders.split(“\n”)
.map(x=>x.split(/:*/,2))
.filter(x=>x[0])
.reduce((ac,x)=>{ac[x[0]]=x[1];返回ac;},{});
}
var req=新的XMLHttpRequest();
请求打开('HEAD',document.location,false);
请求发送(空);
var headers=parseHttpHeaders(req.getAllResponseHeaders());
函数here(){
document.write(JSON.stringify(headers[“x-user”]);
}
这里();

该示例的可能副本确实向我显示了一个弹出窗口,但它没有显示我需要的信息,即“x用户”:fffffff@ffff.fff'