Hello!
2013/6/28 arctgx:
> 最近使用openResty做项目,遇到了一个奇怪的问题,使用ngx.req.get_post_args()和ngx.req.get_post_args()获取到的参数列表顺序和访问时的参数顺序不同。
>
> 比如,curl 'localhost/site/curl?a=aa&b=bb&c=cc&d=dd'
>
因为 ngx.req.get_uri_args 和 ngx.req.get_post_args 返回的是哈希表类型的 lua
table,而在遍历哈希表时,其键值对本来就是无序的。我有计划添加 ngx.req.get_uri_arg_list 和
ngx.req.get_post_arg_list 这两个新接口,它们将返回数组类型的 lua
table,届时参数之间的顺序将得到保持。欢迎贡献补丁 :)
眼下,你可以在 Lua 中通过自己解析 ngx.var.args 的值或者 ngx.req.get_body_data() 的返回值来得到有顺序的参数列表。
同时抄送给 openresty 中文邮件列表:https://groups.google.com/group/openresty
建议你加入此列表并在那里交流这样的问题,谢谢合作!
Best regards,
-agentzh