【问题标题】:Angular HTTP Params Returning Array instead of duplicate in get requestAngular HTTP 参数返回数组而不是在获取请求中重复
【发布时间】:2020-08-31 09:11:58
【问题描述】:

我正在尝试为 Angular 获取请求中的单个值创建多个参数值,但它返回的值数组是我的代码。

let params = new HttpParams;
let prefectures = [01, 02] //dynamic array of numbers
for(let pre of prefectures){
  params = params.append('prefecturesCode', pre);
}

这里是请求代码

return this.http
  .get(this.replaceBaseUrl(url), {
    headers,
    params: params
  })

我正在获取此网址

http://localhost:3003/endpoint?prefecturesCode=02,03

但我需要的是这样的

http://localhost:3003/endpoint?prefecturesCode=02&prefecturesCode=03

我做错了什么?

【问题讨论】:

  • 我认为预期的 URL 不是标准,您可以坚持默认行为并在 API 中用逗号分隔 prefecturesCode 值。否则,如果需要,您可以遍历动态数组,创建和更新字符串变量,并将其附加到 URL。

标签: angular angular-httpclient angular-http


【解决方案1】:

我认为如果您需要在查询参数中传递值列表,正确的方法是

http://localhost:3003/endpoint?prefecturesCode=02,03

例如,在 node.js 中,当 Express 解析请求中的查询参数时,它存储在 params 对象中,该对象具有名称为范围。因此,如果您两次发送相同的参数,您将只会得到值 03 或错误。

希望对你有帮助。

【讨论】:

    猜你喜欢
    • 2013-10-02
    • 2019-08-05
    • 1970-01-01
    • 1970-01-01
    • 2015-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多