express.js get 请求 http://xxxx.com/yy?a=1&gourl=/zz/bb?pageindex=2&type=1 时,req.query 取出gourl 少内容了.
问答
Get: http://xxxx.com/yy?a=1&gourl=/zz/bb?pageindex=2&type=1 服务器后台取值时: req.query.gourl = gourl=/zz/bb?pageindex=2 , 少了 type=1。 大家有没有办法解决这个问题.
回复 (12)
M
业务目的,是为了解决请求页面的操作完成之后返回到请求页面的位置。
B
gourl 后面的值要进行 url encode 编码就可以了。
M
引用 beyond5959gourl 后面的值要进行 url encode 编码就可以了。
@beyond5959 将gourl 的值进行urlencode 不行, 到了服务器req.已解开再进行query了。
B
引用 mrlong@beyond5959 将gourl 的值进行urlencode 不行, 到了服务器req.已解开再进行query了。
@mrlong 那就通过拿 req.originalUrl,然后用 url.parse 自己处理咯。
M
自己顶上,
W
你狠棒棒哦。
L
引用 mrlong自己顶上,
@mrlong 我理解你的意思是
req.query.gourl = gourl=/zz/bb?pageindex=2&type=1
才是你想要的,但是这是不可能的,express 是用的 parseurl 模块拿出 pathname, query...近似 url.parse 只是速度上有提升。
但是我试着用 parseurl 和 url.parse 处理这个 url,结果中 query 是一样的,而 query 的处理应该都是常规处理,最后结果应该是
{ a: '1', gourl: '/zz/bb?pageindex=2', type: '1' }
P
encodeURIComponent 不行?
' http://xxxx.com/yy?a=1&gourl=' + encodeURIComponent('/zz/bb?pageindex=2&type=1')
W
能实现需求 方式应该很多种
B
url后面带url参数,这个url参数要encodeURIComponent
M
引用 polunzhencodeURIComponent 不行? ' http://xxxx.com/yy?a=1&gourl=' + encodeURIComponent('/zz/bb?pageindex=2...
@polunzh @leavesdrift 这个方法想到了,没有用,到了express->req 已是转成了明文。
M
引用 blackjackurl后面带url参数,这个url参数要encodeURIComponent
@blackjack 一样不灵.
参与回复
登录后即可参与回复。登录