我需要使用$http
服务发送GET请求。其中一个参数是ids数组。url看起来像这样的mysite.com/items?id[]=1&id[]=2&id[]=3&id[]=4
我尝试过这种方法
$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()
解决了这个问题。
$http(
method: 'GET'
url: '/items?' + $.param({id: ids})
)
发布于 2014-01-22 23:31:16
$http(
method: 'GET',
url: '/items',
params: {
id: JSON.stringify(ids) // ids is [1, 2, 3, 4]
}
)
发布于 2014-09-19 03:41:10
你也可以这样做
$http(
method: 'GET',
url: '/items',
params: {
"id[]": ids // ids is [1, 2, 3, 4]
}
)
正如前面提到的here。看起来更简单。
发布于 2014-03-30 01:20:31
jQuery很棒,但是如果你只是为了这个目的而添加jQuery,那么你可能可以用一种非jQuery的方式来节省一些宝贵的字节。
非jQuery方式:
$http(
method: 'GET',
url: '/items',
params: {
id: ids.toString() //convert array into comma separated values
}
)
在您的服务器上将其转换回数组。
例如:在php中
$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
}
https://stackoverflow.com/questions/19957858
复制相似问题