LOADING STUFF...
百度&必应权4, 日IP8000. 查看详情
自助收录

如何解决Nginx作为web容器时Header请求头里有些参数值为null的问题?

开发环境2年前 (2022)更新 江南白衣
466 0 0
如何解决Nginx作为web容器时Header请求头里有些参数值为null的问题?

Nginx反向代理设置proxy_set_header自定义header请求头参数无效。【原文:开发者导航】

报错代码:

String staffId = request.getHeader(“staffId”);
String sn = request.getHeader(“sn”);
String site_id = request.getHeader(“site_id”);
String photo_type = request.getHeader(“photo_type”);

问题描述:

项目使用Nginx作为web容器,前两个参数staffId和sn使用request.getHeader()方法可以正常获取到值,后面两个参数site_id和photo_type使用request.getHeader()方法获取值始终为null。

问题分析:

Nginx对自定义的header name做了限制,默认设置underscores_in_headers参数值为off,即如果header name中包含下划线,则忽略掉,部署后就获取不到值。

解决办法:

1、在header里不要用“_”下划线,可以使用Java定义变量的方式(驼峰命名法)命名或者用其他的符号(比如“-”减号)代替。

2、将上面提到的配置项的值改为on。在Nginx的配置文件nginx.conf中配置http的部分添加下面的代码:

underscores_in_headers on;(默认值是off)

原文地址:https://www.codernav.com/2726.html

© 版权声明

相关文章

暂无评论

暂无评论...