我正在尝试使用normalize-url软件包从URL中删除所有查询参数,但得到一些奇怪的结果。
我正在使用removeAllQueryParameters选项,如下所示:
{
let url = normalizeUrl(model.article.url,{removeAllQueryParameters: true});
callServerMethod({
name: 'addNewPost',
data: {
title: model.article.title,
url: url,
},
并在调用将URL添加到数据库的方法时按如下方式使用它:
$string = '010101010001111';
$decVal = bindec($string);
$variable = 3;
$result = decbin(($decVal >> $variable) | (($decVal << (strlen($string) - $variable)) & ~(~0 << strlen($string))));
echo $result;
对于示例网址:https://example.com?utm_source=test&utm_medium=test&utm_campaign=test
我得到以下结果: https://example.com?utm_campaign=test
有趣的是,第二个示例URL:https://example.com?utm_source=test 结果为https://example.com-正确。
在要删除多个参数的情况下,该功能将跳过最后一个参数。
预先感谢您的提示。
答案 0 :(得分:0)
searchParams.keys()
返回Iterator
,在迭代时修改源对象是个坏主意。
只需将键的副本复制到数组中,然后遍历它:
for (const key of [...urlObj.searchParams.keys()]) {
urlObj.searchParams.delete(key);
}
答案 1 :(得分:0)
以下方法对我有用,但是,我不确定像这样设置urlObj.search
是否是一种好习惯:
if (options.removeAllQueryParameters) {
urlObj.search = '';
}