QueryString无法正确解析或(或创建)https://example.com/?computer[desktop]=Mac等数组

时间:2017-11-09 18:06:20

标签: javascript jquery

var u2 = new Url("https://example.com/");
u2.query["computer"] = {};
u2.query["computer"]["desktop"] = "Mac";
alert(u2);

结果应为:https://example.com/?computer[desktop]=Mac

相反,我得到了这个:https://example.com/?computer=%5Bobject%20Object%5D

此外,当我解析一个类似于https://example.com/?computer[desktop]=Mac

的网址时

检查控制台中的对象应该像返回一样:

Computer: Object
desktop: "Mac"

相反,我得到了这个:computer[desktop]: "Mac"

"桌面"并未被识别为计算机内部的对象"。 "计算机[桌面]"只是像任何其他字符串一样用作键。

https://github.com/Mikhus/domurl/

1 个答案:

答案 0 :(得分:0)

它没有解析错误。 Url()似乎决定将查询字符串解析为 application/x-www-form-urlencoded数据。 =的左侧是字段的名称,右侧是值,并且每个对由&

分隔

查询字符串仅表示空值或ASCII字符串。格式 必须 或如何解析它没有固定的标准。这取决于所使用的框架。

如果您希望以特定格式使用或以特定方式解析,则必须自行完成或使用该框架决定如何使用它。

因此,在您使用Url的情况下,您必须使用字符串computer[desktop]作为键,以您希望的方式正确设置查询字符串

u2.query['computer[desktop]'] = "Mac"