Gpx Gpx - 4 months ago 24
Javascript Question

Send array via GET request with AngularJS' $http service

I need to send a GET request using the

$http
service. One of the parameters will be an array of ids. The url looks like this one mysite.com/items?id[]=1&id[]=2&id[]=3&id[]=4

I tried this approach

$http(
method: 'GET',
url: '/items',
params: {
id: ids // ids is [1, 2, 3, 4]
}
)


but the url I obain is mysite.com/items?id=%5B%221%22%2C%222%22%2C%223%22%2C%224%22%5D

That's Because Angular is converting my value in a JSON string. Is there a way to get the behavior I want?

[Update]

I solved the issue thanks to Jonathan's suggestion using jQuery's
$.param()
.

$http(
method: 'GET'
url: '/items?' + $.param({id: ids})
)

Answer
$http(
  method: 'GET',
  url: '/items',
  params: {
    id: JSON.stringify(ids) // ids is [1, 2, 3, 4]
  }
)