Envoyer tableau via une requête GET avec AngularJS' $service http
J'ai besoin d'envoyer une requête GET à l'aide de la $http
service. L'un des paramètres sera un tableau d'id. L'url ressemble à ceci un mysite.com/items?id[]=1&id[]=2&id[]=3&id[]=4
J'ai essayé cette approche
$http(
method: 'GET',
url: '/items',
params: {
id: ids //ids is [1, 2, 3, 4]
}
)
mais l'url que j'ai obain est mysite.com/items?id=%5B%221%22%2C%222%22%2C%223%22%2C%224%22%5D
C'est Parce Angulaire est la conversion de ma valeur dans une chaîne JSON. Est-il possible d'obtenir le comportement que je veux?
[Mise à jour]
J'ai résolu le problème grâce à Jonathan de la suggestion à l'aide de jQuery $.param()
.
$http(
method: 'GET'
url: '/items?' + $.param({id: ids})
)
- Si vous êtes confrontés à AngularJS spécifiques de sérialisation problème, alors httpParamSerializerJQLike est ce que vous avez besoin. Jetez un oeil à stackoverflow.com/questions/33852190/...
Vous devez vous connecter pour publier un commentaire.
Vous pouvez aussi simplement faire
comme mentionné ici. Semble plus simple.
form
serait.body of the request
sur l'arrière-plan avec le Nœud.jQuery est grande, mais si votre ajout de jQuery juste pour cela, alors vous pourriez probablement faire avec non jQuery façon et d'économiser quelques précieux octets.
Non jQuery façon :
Sur votre serveur de convertir un tableau.
Par exemple. en php
ids.toString()
est exactement ce que je voulais. Les autres suggestions n'étaient pas de la sérialisation dans une requête correct param dans le format que j'ai besoin de:?id=1,3,4,5
Ceci est valable, juste décoder sur votre backend. Presque tous les backend langues ont une façon de décoder un URI. Si vous n'aimez pas la façon dont Angulaire est la sérialisation, vous pouvez essayer de jquery $.param().
Le paramSerializer option peut être configurée pour répliquer jQuery méthode de sérialisation:
vous pouvez utiliser $httpParamSerializer ou $httpParamSerializerJQLike
{}
de l'appareil?Tant que vous n'avez pas trop d'id, qui sera la cause de votre demande d'url est trop longue en fonction de votre configuration, la solution suivante de travail...
Angulaire De Service:
WebApi Contrôleur