Request headers增加参数,直接访问可以获取到,部署到服务器获取不到的原因
参数
access_token:"ddddd";
由于服务器是通过nginx代理转发的,它不认下划线,所以通过nginx代理后后台获取不到
改变参数名或者nginx增加配置
underscores_in_headers on
打印headers的值
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
//根据投信息的key获得值
String headVal = request.getHeader("Host");
System.out.println("Host:" + headVal);
// Host:localhost:8080
//通过getHeaderNames获得所有头名字的Enumeration集合
Enumeration<String> headNames = request.getHeaderNames();
while(headNames.hasMoreElements()){
String headName = headNames.nextElement();
System.out.println(headName+":"+request.getHeader(headName));
}
}
在服务器上,由于使用nginx代理转发,遇到一个问题是:请求headers中的access_token参数因为包含下划线,导致后台无法获取。解决办法是修改参数名或调整nginx配置,启用'underscores_in_headers'选项。博主通过打印headers值展示了问题的排查过程。
1万+

被折叠的 条评论
为什么被折叠?



