首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用AngularJS的$http服务通过GET请求发送数组

使用AngularJS的$http服务通过GET请求发送数组
EN

Stack Overflow用户
提问于 2013-11-13 23:32:58
回答 7查看 79.7K关注 0票数 49

我需要使用$http服务发送GET请求。其中一个参数是ids数组。url看起来像这样的mysite.com/items?id[]=1&id[]=2&id[]=3&id[]=4

我尝试过这种方法

代码语言:javascript
复制
$http(
  method: 'GET',
  url: '/items',
  params: {
    id: ids // ids is [1, 2, 3, 4]
  }
)

但是我奥班的网址是mysite.com/items?id=%5B%221%22%2C%222%22%2C%223%22%2C%224%22%5D

这是因为Angular正在将我的值转换为JSON字符串。有没有办法获得我想要的行为?

更新

多亏了Jonathan的建议,我使用jQuery的$.param()解决了这个问题。

代码语言:javascript
复制
$http(
  method: 'GET'
  url: '/items?' + $.param({id: ids})
)
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2014-01-22 23:31:16

代码语言:javascript
复制
$http(
  method: 'GET',
  url: '/items',
  params: {
    id: JSON.stringify(ids) // ids is [1, 2, 3, 4]
  }
)
票数 62
EN

Stack Overflow用户

发布于 2014-09-19 03:41:10

你也可以这样做

代码语言:javascript
复制
$http(
  method: 'GET',
  url: '/items',
  params: {
    "id[]": ids // ids is [1, 2, 3, 4]
  }
)

正如前面提到的here。看起来更简单。

票数 78
EN

Stack Overflow用户

发布于 2014-03-30 01:20:31

jQuery很棒,但是如果你只是为了这个目的而添加jQuery,那么你可能可以用一种非jQuery的方式来节省一些宝贵的字节。

非jQuery方式:

代码语言:javascript
复制
$http(
  method: 'GET',
  url: '/items',
  params: {
    id: ids.toString() //convert array into comma separated values
  }
)

在您的服务器上将其转换回数组。

例如:在php中

代码语言:javascript
复制
$ids = explode(',',Input::get('ids'));

//now you can loop through the data like you would through a regular array. 

foreach($ids as $id)
{
 //do something
}
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19957858

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档