猿问

URLSearchParams 没有给出正确的参数值

我正在尝试使用 URLSearchParams 来提取其值经过 AES 加密的 url 参数。但我注意到,如果该值包含“+”号,则 URLSearchParams 没有给出正确的值。

例如,如果 url 是“https://www.google.com/?data=a+b”,则 URLSearcParams 将数据作为“a b”提供。我正在使用下面的代码。

var url = new URL('https://www.google.com/?data=a+b')
url.searchParams.get('data')

如果有任何其他方法可以提取 url 参数值,谁能告诉我。



慕娘9325324
浏览 310回答 1
1回答

湖上湖

您必须使用searchParams.append()才能正确设置查询字符串参数。我制作了一个包含所有键 + 值的简单对象,然后是一个辅助函数来正确附加对象的内容:const url = new URL('https://www.google.com/')const params = {  'data': 'a+b',  'moarData': 'c+d'};Object.entries(params).forEach(([key, val]) => url.searchParams.append(key, val));console.log(url.searchParams.get('data'));console.log(url.searchParams.get('moarData'));
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答