URLSearchParams 没有给出正确的参数值
URLSearchParams is not giving correct parameter values
我正在尝试使用 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()
才能正确设置查询字符串参数。我制作了一个包含所有键 + 值的简单对象,然后是一个辅助函数来正确附加对象的内容:
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'));
我正在尝试使用 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()
才能正确设置查询字符串参数。我制作了一个包含所有键 + 值的简单对象,然后是一个辅助函数来正确附加对象的内容:
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'));