javascript - 如何转换值表以将其集成到 http.get 中

标签 javascript angularjs

我有一个值表:

var array = [10,11,12,13,14,15]

我想将它作为参数集成到 http.get 中,但采用以下形式:

id=10&id=11&id=12&id=13&id=14&id=15

我想到了这样做:

var url = /myUrl;
var urlParam;
  array.map(function(item) {
  urlParam += '&id=' + item ;
  return urlParam;
 });

但最终我的网址如下所示:

ERRONEOUS

/myUrl&id=10&id=11&id=12&id=13&id=14&id=15

而不是:

/myUrl?id=10&id=11&id=12&id=13&id=14&id=15

对于

$http.get('/myUrl' + urlParam);

有更好的解决方案吗?

最佳答案

你真的应该使用URLSearchParams它用于处理 URL 的查询字符串。

var array = [10, 11, 12, 13, 14, 15];
const params = new URLSearchParams();

array.forEach(function(value) {
  params.append('id', value);
});

console.log('/myUrl?' + params.toString());

由于 URL 查询参数的键保持不变,因此最好将其作为一键多个值发送。您可以使用 JSON.stringify()或者按原样发送数组,具体取决于您想要如何实现它,但作为 JSON 发送将是更好的设计。

var array = [10, 11, 12, 13, 14, 15];
const params = new URLSearchParams();
params.append('id', JSON.stringify(array));
console.log('/myUrl?' + params.toString());

关于javascript - 如何转换值表以将其集成到 http.get 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57042649/

相关文章:

javascript - 如何获取网站的中间值(网页抓取)

javascript - 更改文本中的值以查看第 1-6 个(共 14 个)

javascript - JQuery 可排序 : Can I treat two rows as one row when dragging to another position?

c# - Web Api 用户身份返回 null

javascript - Angular : Why doesn't CSS justification work with ng-repeat?

javascript - 在 Angular 中猴子修补 Bower 包的好方法是什么?

javascript - Pikaday - 标记或突出显示某些日期

javascript - 为什么我的 indexOf 没有显示除 -1 之外的任何值?

javascript - 尝试创建一个 AngularJS 函数来删除 MySQL 条目

javascript - Protractor 页面对象 - TypeError : Object #<Object> has no method 'methodName'