linux nginx 下通过curl url方式,&符以后的参数无效
nginx转发get请求丢失参数
ngixn转发,接口为get请求时参数会丢失,post不会出现问题。原因:get请求参数是拼在url中的,转发时会丢失,post请求参数是放在请求体里面,所以不会出现问题。
现在配置为
location ~*/wx/(.*) {
# 动态页面,交给tomcat处理
if ( !-e $request_filename) {
proxy_pass http://127.0.0.1:8081/$1;
}
}
修改配置为
location ~*/wx/(.*) {
# 动态页面,交给tomcat处理
if ( !-e $request_filename) {
proxy_pass http://127.0.0.1:8081/$1?$args;
}
}
接口描述:
ip:port/get?name=51zpt&age=18
因为接口做了兼容处理,所以并没有报错,但是结果却不对
查看接口的日志发现请求链接是下面这个
/get?name=51zpt
这是直接把 & 后面的参数全丢了
linux 下 & 有特殊含义,curl 请求会把 & 以及后面的所有参数抛弃;
为了防止丢弃就需要声明给 linux ,跟他说这个 & 不是你想的那样。
ip:port/get?name=51zpt\&age=18