不要在查询字符串stringify中编码网址

时间:2013-08-28 18:57:58

标签: node.js query-string

<{1}}是否有 对网址进行编码的选项?

qs.stringify

我想要下面的输出:

$ node
> var qs = require("querystring");
undefined
> qs.stringify({"url": "http://domain.com"});
'url=http%3A%2F%2Fdomain.com'

5 个答案:

答案 0 :(得分:5)

有点晚了,但对于下一个人,你可以这样做:     querystring.unescape(myString的)

答案 1 :(得分:3)

不直接,不。虽然,如果您没有转义查询字符串中的值,那么使用查询字符串几乎没有任何好处。请注意:var q = 'url=http://domain.com'

编辑:从查看源代码,唯一的方法是更改​​(即覆盖)查询字符串escape()函数的行为 - 这可能但不是一个好主意。

答案 2 :(得分:2)

再次回答,但是......
$(".droplist").droppable().sortable({ opacity: 0.6, revert: true, cursor: 'move', placeholder: "highlight", receive: function(event, ui) { var dragtext = $(ui.item[0]).text(); alert(dragtext); } }); 选项qs.stringify()实际上禁用了URI编码。

Qs.stringify documentation

您也可以在nodejs encode:false模块中使用它:

request/request

答案 3 :(得分:1)

以下是答案:

qs.stringify({url: "http://domain.com"}, { encodeURIComponent: uri => uri });

选项&#34; encodeURIComponent:uri =&gt; URI &#34;是禁用编码。

答案 4 :(得分:0)

这对我有用

qs.stringify({url: "http://example.com"}, null, null, { encodeURIComponent: qs.unescape });