angularjs - $http.get doesn't work with arrays with only one element. How do I specify the param type? -


i'm using angular's $http.get() method query api:

var arr = ['foo','bar']; return $http.get("api/foo", {   params: { sampleids: arr} }); 

this results in request /api/foo?sampleids=115&sampleids=116 works ok. if reduce size of array single element, however, becomes /api/foo?sampleids=115, express (node.js) fails interpret array.

if angular sent query /api/foo?sampleids[]=115 instead, should work fine. there way can tell that?

you can use paramserializer property in request config customize how parameters object gets converted string.

return $http.get("api/foo", {   params: { myarray: arr},   paramserializer: function (params) {       // return string...   } }); 

you can @ default implementation here, if you're not sure how go serializing object: https://github.com/angular/angular.js/blob/master/src/ng/http.js#l27.

additionally, if provide string rather function, service name - helpful if want reuse it. there's $httpparamserializerjqlike service provided default, serializes them in same format jquery's param() function.


Comments

Popular posts from this blog

javascript - jQuery: Add class depending on URL in the best way -

caching - How to check if a url path exists in the service worker cache -

Redirect to a HTTPS version using .htaccess -