JavaScript 中更安全的 URL 读写

这篇博客探讨了在JavaScript中处理URL时常见的问题,如分隔符错误、忘记编码和意外空白字符,并介绍了使用URL构造函数作为更安全、优雅的解决方案。URL构造函数能确保分隔符正确,自动编码参数,避免多行URL带来的空白字符风险。同时,文章还详细阐述了如何使用URL对象的属性和URLSearchParams方法进行URL的读写操作,提供了一种在不同场景下修改和读取URL参数的高效方式。
摘要由CSDN通过智能技术生成

前言

URL对于我们开发人员来讲,应该是非常熟悉了。在对URL进行参数拼接时,我们一般都会直接进行字符串拼接或使用模版字符串,因为这样非常方便,但是我们这样其实会在不知不觉中以不安全的方式编写 URL。

比如,我们通常会这样写:

const url = `https://www.baidu.com?model=${model}&locale=${locale}?query.text=${text}` 

这样确实写起来非常方便,但你可能会在不知不觉中会你的程序带来一些问题。(如上代码就是一段有问题的代码)

常见问题

不正确的分隔符

这种错误可能在新手身上比较常见,但即使是经验老道的程序员也不可能绝对避免这个错误。造成这个错误的罪魁祸首绝大多数是在修改或移动代码之后。例如,你有一个结构正确的 URL,然后将一个片段从一个片段复制到另一个片段,然后错过了参数分隔符的错误排序。

忘记编码

许多时候我们URL上的参数是需要进行编码的,因为URL参数可以是任意类型的文本,包括空格和特殊字符,这会给我们带来一些无法预料的问题。

所以为了避免这种情况,我们往往会这样写:

const url = `https://www.baidu.com?model=${encodeURIComponent(model)}&locale=${encodeURIComponent(locale)}&query.text=${encodeURIComponent(text)}` 

但这样的写法给人的感觉是非常的冗余且不雅观😓

意外的空白字符

有时候我们为了将一个长 URL 分成多行,我们会不小心在 URL 中包含了换行符和额外的空格,这将导致无法按预期进行抓取。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值