【问题标题】:How to add multiple same-name query parameters in Angular $http如何在 Angular $http 中添加多个同名查询参数
【发布时间】:2015-03-22 19:31:53
【问题描述】:

全部

我想要做的是添加多个具有相同名称的参数以使用 AngularJS $http 请求 URL,使发送的 URL 像 http://localhost:8080/?value=1&value=2.....

这篇文章也描述了类似的情况: Sending HTTP request with multiple parameters having same name

任何人都可以在 AngularJS $http 中提供帮助吗?

谢谢

【问题讨论】:

  • 你试过传递数组吗?

标签: angularjs http url


【解决方案1】:

您调用也使用URLSearchParams 作为参数。例如:

let params = new URLSearchParams();

params.append('someParmName', 'value1');
params.append('someParmName', 'value2');

// the following statement will form this url: ?someParmName=value1&someParmName=value2
http.get(api_url, {search: params});

或者

let params = new URLSearchParams();

params.set('someParmName', ['value1', 'value2'];);

// the following statement will form this url: ?someParmName=value1,value2
http.get(api_url, {search: params});

【讨论】:

    【解决方案2】:

    你需要使用这样的数组:

     var params = {};
     params.someParmName = ['value1', 'value2'];
    

    这将使用相同的查询字符串键“someParmName”发送 value1 和 value2。

    这是一个 GET 请求示例:

     var parameters = {};
     parameters.someParmName = ['value1', 'value2'];
    
     $http({
        url: 'api_url', 
        method: "GET",
        params: parameters
    });
    

    【讨论】:

    • 谢谢,我现在试试。
    • 我刚刚修复了一个代码错误,仅供参考。如果您要复制,请查看我的答案。
    • 仅供参考:$http 返回一个承诺。
    • 根据您的回答,它将是 someParmName=value1&someParmName=value2 但可以更改为像 someParmName=value1,value2 这样的查询吗?
    猜你喜欢
    • 2022-01-17
    • 2020-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 2013-02-19
    • 2018-07-05
    • 1970-01-01
    相关资源
    最近更新 更多