1
alanjin 2016-08-31 10:23:07 +08:00
为什么 url 里面要放空格?
|
2
Olive 2016-08-31 10:24:11 +08:00
空格转成下滑线
|
3
SharkIng 2016-08-31 10:25:12 +08:00
URL 里面还能有空格?长见识了
|
8
lovedebug 2016-08-31 10:27:30 +08:00
还是 JSON 大法好。很好奇服务器难道以空格分割?不是=号分割吗?
|
9
Pastsong 2016-08-31 10:27:50 +08:00
url encode 之后空格不都是 %20 这样吗
|
10
lovedebug 2016-08-31 10:27:57 +08:00
可以考虑先 escape 再 encode
|
11
ljbha007 2016-08-31 10:28:40 +08:00
出现这种情况其实是因为有些隐藏的逻辑错误、函数使用错误 楼主未给出完整信息无法解答
|
13
SourceMan 2016-08-31 10:29:03 +08:00
|
14
lovedebug 2016-08-31 10:33:16 +08:00
|
15
Powered OP 先谢谢楼上各位
我的 URL 大概长这样: http://localhost:3000/?title=aaa%20bbb%20ccc 使用 encodeURIComponent 和 decodeURIComponent 当然可以得到正确的值 然而问题是...我使用了封装的对象 (Koa2.0/es6) ``` let queryBody = ctx.request.query; let title = queryBody.title; ``` 得到的是第一个空格前面的值 |
16
gdtv 2016-08-31 10:44:52 +08:00
如果已经 encode 了服务器还是获取不到,那就是服务器端代码的问题 了
|
18
BoiledEgg 2016-08-31 11:27:30 +08:00
ctx.request.url ctx.request.querystring 应该能拿到的吧?
request.query 是 request.querystring 用 querystring 这个库解析出来的 request.querystring 是 request.url 用 parseurl 这个库解析出来的 一步步调看哪一步出问题了,应该% 20 代替空格就没问题了啊 |
19
yhxx 2016-08-31 11:29:36 +08:00
|
21
bombless 2016-08-31 12:28:55 +08:00 via Android 1
@qiayue 噗,自己搜 encodeuricomponent ,这个是 uri 规范里的规则
|
22
qiayue 2016-08-31 14:12:30 +08:00
|
23
wmttom 2016-08-31 15:19:35 +08:00 1
看一下是不是中间解析 url 走了不同的 urlencode 标准,空格可能会有 + 或者 %20 的形式,确定前后端和中间处理都走一套。 可以参考 rfc 3986
|
24
mingyun 2016-08-31 22:53:51 +08:00
url 对空格处理成+,然后服务器端接收到的会自动 urldecode ,输出空格
|