URL读取和写入
一个更清洁、更安全的解决方案是使用URL构造函数。
const url = new URL('https://example.com/api/v2/content')
url.searchParams.set('model', model)
url.searchParams.set('locale', locale)
url.searchParams.set('text', text)
const res = await fetch(url.toString())
这为我们解决了几件事:
- 分隔符字符将始终正确(?对于第一个参数,&此后)。
- 所有参数都会自动编码。
- 当跨越多行进行长URL时,没有额外的空格字符的风险。
URL属性
URL实例支持在浏览器中已经存在的所有属性,例如window.location或锚元素,所有这些都可以读取和写入。
const url = new URL('https://example.com/blog?page=1');
url.protocol // https:
url.host // example.com
url.pathname // /blog
url.search // ?page=1
url.href // https://example.com/blog?page=1
url.origin // https://example.com
url.searchParams.get('page') // 1
...
searchParams.has(name)
检查搜索参数是否包含给定的名称。
url.searchParams.has('page') // true
searchParams.get(name)
获取给定参数的值。
searchParams.get(name) // '1'
searchParams.set(name, value)
设置参数的值。
url.searchParams.set('page', '1')
searchParams.delete(name)
删除参数。
url.searchParams.delete('page')
转载自:https://juejin.cn/post/7196698315835244600