如何给静态URL添加URL参数?searchParams.append无效如何解决
问题原因
代码不生效是两个错误直接导致的:
- 传入
URL构造函数的地址字符串没有闭合单引号,存在基础语法错误,代码运行时会直接抛出异常,根本执行不到后面追加参数的逻辑 - 调用
append方法修改查询参数后,没有读取URL对象的最终处理结果。searchParams.append只会修改URL实例的内部属性,不会自动返回拼接完成的地址字符串。
正确实现代码
// 传入目标地址时保证引号成对闭合,和你实际使用的地址保持一致 const myUrl = new URL('http://www.example.com'); // 追加目标查询参数 myUrl.searchParams.append('fileName', 'samplefile'); // 读取处理完成的最终URL,用.href属性或者.toString()方法都可以 const resultUrl = myUrl.href; // 验证输出:http://www.example.com/?fileName=samplefile console.log(resultUrl);
补充说明
如果目标URL本身已经存在fileName参数,用append会在原有参数后新增一个同名键值对,最终URL里会出现两个fileName=参数。如果需要保证参数唯一,不管原有值是什么都直接覆盖为目标值,把append换成set即可:
myUrl.searchParams.set('fileName', 'samplefile');
内容的提问来源于stack exchange,提问作者Chandima Herath
相关产品推荐
相关产品推荐

