Ken*_*ore 2 javascript url node.js
我看到你可以这样做:
myUrl.searchParams.set('param1', 'value');
myUrl.searchParams.set('param2', 'value');
...
Run Code Online (Sandbox Code Playgroud)
我想做的更像是:
myUrl.searchParams.set({
param1: 'value',
param2: 'value
});
Run Code Online (Sandbox Code Playgroud)
但这不起作用。
我在文档中看到您可以使用URLSearchParams该类来执行此操作:
myParams = new URLSearchParams({
param1: 'value',
param2: 'value
});
Run Code Online (Sandbox Code Playgroud)
但我想不通的是如何使用它。这些不起作用:
myUrl.searchParams = myParams;
Run Code Online (Sandbox Code Playgroud)
或者
myUrl.searchParams.set(myParams);
Run Code Online (Sandbox Code Playgroud)
您的想法是正确的,这不是一个错字,但是您需要将 params 对象分配给search而不是searchParams.
myUrl.search = myParams
Run Code Online (Sandbox Code Playgroud)
该myURL.searchParams对象是由 自动创建的URLSearchParams实例new URL()。您可以使用它的方法,但是……遗憾的是,一旦创建了该对象,一次设置多个参数就为时已晚,因为只有构造函数支持它,而它的任何方法都不支持。
认为您应该能够自己创建一个新实例并将其分配给searchParams属性是合乎逻辑的。但他们决定将该属性设为只读。我认为这会让很多人感到困惑,这是不必要的不直观。
好消息是,myParams.search是可写的,它会很高兴地序列化myParams对象。
const myUrl = new URL('https://example.com/');
myUrl.search = new URLSearchParams({
param1 : 'value',
param2 : 'value'
});
myUrl.toString();
// https://example.com/?param1=value¶m2=value
Run Code Online (Sandbox Code Playgroud)
我希望有人支持将对象传递给myParams#set()的能力,并且有一天我们可以search在 URL 上只有一个相关的属性。
| 归档时间: |
|
| 查看次数: |
998 次 |
| 最近记录: |