-
Notifications
You must be signed in to change notification settings - Fork 27.4k
Angular serializes brackets for array url parameters #14933
Comments
The Note that jQuery does the same encoding. Although this probably doesn't work for every backend out there, it is a coomon pattern and should be compatible with most. The following is also very true ("stolen" from the jQuery docs):
|
Well, I thought I was having an issue, but apparently I have resolved it. So I had found many articles (also in that 2-3 year range) that discussed that an ASP.NET C#/MVC application such as mine would expect the bracket notation to denote arrays as a GET parameter. However, this morning, in preparation for this response, I double-checked and randomly found a StackOverflow article discussing how current ASP.NET MVC expects NO brackets, just duplicate parameter names ( So in short, my issue is resolved. The long story, for those Googling to figure out how to use Angular to encode an array, we might want to be clearer that the |
Thx for getting back. I think it still is for other backends (and the fact that jQuery does it too is a strong indication that it is a common pattern). In any case, we now support defining your own Closing since your issue is resolved. |
Sorry to necro this issue, but are there any examples out there on how to post to backends that still only accept [] by defining your own paramSerializer? I'm currently working on a project that requires this pattern and was hoping for a bit of guidance. |
@doodirock, for general support question, please use one of the appropriate support channels. |
Note: for support questions, please use one of these channels: https://github.com/angular/angular.js/blob/master/CONTRIBUTING.md#question. This repository's issues are reserved for feature requests and bug reports.
Do you want to request a feature or report a bug?
Bug
What is the current behavior?
So the common workaround of appending"[]" to the array-type variable name doesn't work. I am using Angular 1.5.7, and when I give the following parameters:
I get the following url:
It is so close to right - but Angular serializes the
[]
, so the url is wrong.If the current behavior is a bug, please provide the steps to reproduce and if possible a minimal demo of the problem via https://plnkr.co or similar (template: http://plnkr.co/edit/tpl:yBpEi4).
What is the expected behavior?
The url should be built as
http://localhost:49200/Encounter/Validate?environment=Dungeon&filters[]=Dragon&filters[]=Ooze&level=1
What is the motivation / use case for changing the behavior?
Both #3740 and #3121 discuss this being a valid way to pass arrays as URL parameters in GET requests for Angular to serialize.
Which versions of Angular, and which browser / OS are affected by this issue? Did this work in previous versions of Angular? Please also test with the latest stable and snapshot (https://code.angularjs.org/snapshot/) versions.
I am using Angular 1.5.7 in Chrome, but seeing it in all browsers
Other information (e.g. stacktraces, related issues, suggestions how to fix)
The text was updated successfully, but these errors were encountered: