不要在querystring stringify中编码url
有没有selectqs.stringify
不会编码的url?
$ node > var qs = require("querystring"); undefined > qs.stringify({"url": "http://domain.com"}); 'url=http%3A%2F%2Fdomain.com'
我想要的输出:
'url=http://domain.com'
不直接,不。 虽然,如果不是在查询string中转义值,那么使用查询string几乎没有任何好处。 心中也只是做: var q = 'url=http://domain.com'
编辑:从源头上看,唯一的办法是改变(即覆盖)查询string的行为()函数 – 这是可能的,但不是一个好主意。
这有点晚,但对于下一个人,你可以这样做:querystring.unescape(myString)
迟到的答案,但…
qs.stringify()
选项encode:false
实际上禁用了URI编码。
Qs.stringify文档
您也可以在nodejs request/request
模块中使用它:
request({ url: 'http://url.domain' qs: { qs1: 'thisIsNotEncodedInTheRequest%20://асд' }, qsStringifyOptions: { encoding: false } });
答案是:
qs.stringify({url: "http://domain.com"}, { encodeURIComponent: uri => uri });
选项“ encodeURIComponent:uri => uri ”是禁用编码。