【问题标题】:JS - URLSearchParams - add parametersJS - URLSearchParams - 添加参数
【发布时间】:2020-10-18 05:24:44
【问题描述】:

我似乎无法向 URL 添加参数/查询。我正在尝试将参数添加到 url。我正在尝试使用 .set() 和 .append() 来做到这一点,但似乎两者都没有做我认为它会做的事情。我是否误解了这些方法的用途。期望的输出应该是:

http://newsapi.org/v2/top-headlines?country=gb&q=some_word

代码:

const url = new URL('/v2/top-headlines', 'http://newsapi.org')
const params = new URLSearchParams(url.search);
params.set('country', 'gb');
params.append('q', 'some_word')
console.log(url); // All good http://newsapi.org/v2/top-headlines
console.log(url.search); // empty object
console.log(params); // Empty string

【问题讨论】:

  • console.log(params.toString()) - 变量params 包含一个对象,而不是一个字符串。
  • 我认为您没有为 url.search 分配任何值
  • @VLAZ 这行得通,但我将如何更新 url 对象?
  • url.search = params.toString()

标签: javascript urlsearchparams


【解决方案1】:

你是故意的

const url = new URL('http://newsapi.org/v2/top-headlines');

url.searchParams.set('country', 'gb');
url.searchParams.set('q', 'some_word');
console.log(url);

// separately setting the searchParams 
/*
const url = new URL('/v2/top-headlines', 'http://newsapi.org'); // (relative,base)
const params = new URLSearchParams(url.search); // if the url had a queryString already
params.set('country', 'gb');
params.set('q', 'some_word');
url.search = params;
console.log(url);
*/

【讨论】:

    【解决方案2】:

    试试这个

    const url = new URL("/v2/top-headlines", "http://newsapi.org");
    
    url.searchParams.append("country", "gb");
    url.searchParams.append("q", "some word");
    
    console.log(url.toString());

    【讨论】:

      猜你喜欢
      • 2022-07-01
      • 2020-11-15
      • 2020-09-26
      • 2021-01-31
      • 2017-12-26
      • 2014-04-01
      • 2021-02-15
      • 2020-11-09
      • 1970-01-01
      相关资源
      最近更新 更多