微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

URLSearchParams没有提供正确的参数值

如何解决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参数值,请让我知道。

解决方法

必须使用searchParams.append()才能正确设置查询字符串参数。我用所有键+值制作了一个简单的对象,然后创建了一个辅助函数来正确附加objec的内容:

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'));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。