是否有任何选项qs.stringify
不会对网址进行编码?
$ node
> var qs = require("querystring");
undefined
> qs.stringify({"url": "http://domain.com"});
'url=http%3A%2F%2Fdomain.com'
我想要以下输出:
'url=http://domain.com'
是否有任何选项qs.stringify
不会对网址进行编码?
$ node
> var qs = require("querystring");
undefined
> qs.stringify({"url": "http://domain.com"});
'url=http%3A%2F%2Fdomain.com'
我想要以下输出:
'url=http://domain.com'
有点晚了,但是对于下一个人,您可以这样做: querystring.unescape(myString)
再次迟到的答案,但是...
qs.stringify()
具有encode:false
实际上禁用 URI 编码的选项。
你也可以在 nodejsrequest/request
模块中使用它:
request({
url: 'http://url.domain'
qs: {
qs1: 'thisIsNotEncodedInTheRequest%20://асд'
},
qsStringifyOptions: {
// encoding: false /** (OLD VERSION - I think is deprecated yet) */
encode: false
}
});
不直接,不。虽然,如果您没有转义查询字符串中的值,那么使用查询字符串几乎没有任何好处。请注意,只需执行以下操作:var q = 'url=http://domain.com'
编辑:从查看源代码来看,唯一的方法是改变(即覆盖)querystring escape() 函数的行为——这是可能的,但不是一个好主意。
这是答案:
qs.stringify({url: "http://domain.com"}, { encodeURIComponent: uri => uri });
选项“ encodeURIComponent: uri => uri ”是禁用编码。
这对我有用
qs.stringify({url: "http://example.com"}, null, null, { encodeURIComponent: qs.unescape });