ngx.var.arg与ngx.req.get_uri_args的区别,


ngx.var.arg_xx与ngx.req.get_uri_args["xx"]两者都是为了获取请求uri中的参数,例如

http://pureage.info?strider=1

为了获取输入参数strider,以下两种方法都可以:

local strider = ngx.var.arg_strider

local strider = ngx.req.get_uri_args["strider"]

差别在于,当请求uri中有多个同名参数时,ngx.var.arg_xx的做法是取第一个出现的值,ngx.req_get_uri_args["xx"]的做法是返回一个table,该table里存放了该参数的所有值。

例如uri请求如下:

http://127.0.0.1?filename=1&filename=2&filename=3

local filename = ngx.var.filename
local filename = ngx.req.get_uri_args["filename"]

当请求uri中有多个同名参数时,ngx.var.arg是取第一个出现的值 “1“
ngx.req.get_uri_args[“xx”]是返回一个table,该table里存放了该参数的所有值。返回的table列表为[“1”, “2”, “3”]
ngx.req.get_uri_args[“x”]是ngx.var.arg_x的升级版
 

相关内容

    暂无相关文章