Andrew Spode Miller created COUCHDB-1855:
--------------------------------------------

             Summary: POST/GET query is not processing arrays properly
                 Key: COUCHDB-1855
                 URL: https://issues.apache.org/jira/browse/COUCHDB-1855
             Project: CouchDB
          Issue Type: Bug
          Components: HTTP Interface
            Reporter: Andrew Spode Miller


Sending an array in POST/GET url encoded form is not working correctly.

For example:

?foo[]=bar&foo[]=bar2

OR

?foo[0]=bar&foo[1]=bar2

OR 

?foo=bar&foo=bar2

Should be converted to:

foo = ["bar", "bar2"]

Instead, the last element overwrites it. So in the above example, excluding the 
2nd variety, you would get:

foo = "bar2"

I can't find a W3C document to back up this behaviour - but certainly in PHP 
and Java, this is normal behaviour. jQuery also converts an array into this 
format too, so if it's not "standard" it's certainly expected.

According to "rnewson" who I was chatting to on IRC - the reason this is 
happening is that the URL query is being converted to a JSON object. Therefore, 
two items with the same key name would overwrite each other. He also says the 
following:

"yes, I think you'd want to convert "foo=bar&foo=baz" into "foo":["bar","baz"] 
instead of [{"foo","bar"},{"foo","baz"}] in couch_httpd_external's 
to_json_terms function."

I have put a work around in my own code, so this isn't a priority for me - but 
perhaps if someone else already has the relevant bit of code open... :)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to