如何在Angular $ http中添加多个同名查询参数

时间:2015-01-23 17:24:06

标签: angularjs http url

所有

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

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

AngularJS $ http可以帮助吗?

由于

2 个答案:

答案 0 :(得分:22)

你需要使用这样的数组:

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

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

以下是GET请求示例:

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

 $http({
    url: 'api_url', 
    method: "GET",
    params: parameters
});

答案 1 :(得分:2)

您也可以使用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});