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"
"桌面"并未被识别为计算机内部的对象"。 "计算机[桌面]"只是像任何其他字符串一样用作键。
答案 0 :(得分:0)
它没有解析错误。 Url()
似乎决定将查询字符串解析为
application/x-www-form-urlencoded
数据。 =
的左侧是字段的名称,右侧是值,并且每个对由&
查询字符串仅表示空值或ASCII字符串。格式 必须 或如何解析它没有固定的标准。这取决于所使用的框架。
如果您希望以特定格式使用或以特定方式解析,则必须自行完成或使用该框架决定如何使用它。
因此,在您使用Url的情况下,您必须使用字符串computer[desktop]
作为键,以您希望的方式正确设置查询字符串
u2.query['computer[desktop]'] = "Mac"