CNode

express.js get 请求 http://xxxx.com/yy?a=1&gourl=/zz/bb?pageindex=2&type=1 时,req.query 取出gourl 少内容了.

问答
Mmrlong发布于9 年前最后回复9 年前12 回复6217 浏览0 收藏

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
mrlong#1·9 年前

业务目的,是为了解决请求页面的操作完成之后返回到请求页面的位置。

B
beyond5959#2·9 年前

gourl 后面的值要进行 url encode 编码就可以了。

M
mrlong#3·9 年前
引用 beyond5959gourl 后面的值要进行 url encode 编码就可以了。

@beyond5959 将gourl 的值进行urlencode 不行, 到了服务器req.已解开再进行query了。

B
beyond5959#4·9 年前
引用 mrlong@beyond5959 将gourl 的值进行urlencode 不行, 到了服务器req.已解开再进行query了。

@mrlong 那就通过拿 req.originalUrl,然后用 url.parse 自己处理咯。

M
mrlong#5·9 年前

自己顶上,

W
weizijun2017#6·9 年前

你狠棒棒哦。

L
leavesdrift#7·9 年前
引用 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
polunzh#8·9 年前

encodeURIComponent 不行?

' http://xxxx.com/yy?a=1&gourl=' + encodeURIComponent('/zz/bb?pageindex=2&type=1')

W
weizhuanhua#9·9 年前

能实现需求 方式应该很多种

B
blackjack#10·9 年前

url后面带url参数,这个url参数要encodeURIComponent

M
mrlong#11·9 年前
引用 polunzhencodeURIComponent 不行? ' http://xxxx.com/yy?a=1&gourl=' + encodeURIComponent('/zz/bb?pageindex=2...

@polunzh @leavesdrift 这个方法想到了,没有用,到了express->req 已是转成了明文。

参与回复
登录后即可参与回复。登录