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"
“桌面”不被识别为“计算机”中的对象。和其他字符串一样,"computerdesktop“被简单地用作键。
发布于 2017-11-10 02:59:55
它没有解析错误。Url()似乎决定将查询字符串解析为数据。其中,=的左侧是字段的名称,右侧是值,其中每一对都用&分隔
查询字符串仅隐含空值或ASCII字符串。关于必须是什么格式,以及如何解析它,没有既定的标准。这取决于所使用的框架。
如果你想要它以一种特殊的格式,或者以一种特殊的方式进行解析,你将不得不自己去做,或者去考虑框架决定如何使用它。
因此,在使用Url的情况下,您必须使用字符串computer[desktop]作为键,才能正确设置查询字符串。
u2.query['computer[desktop]'] = "Mac"https://stackoverflow.com/questions/47208753
复制相似问题