couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrew Spode Miller (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-1855) POST/GET query is not processing arrays properly
Date Tue, 16 Jul 2013 15:04:48 GMT

    [ https://issues.apache.org/jira/browse/COUCHDB-1855?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13709833#comment-13709833
] 

Andrew Spode Miller commented on COUCHDB-1855:
----------------------------------------------

I agree with your first case - I don't like how some other languages do it that way.

The second example is the way jQuery encodes by default when dealing with an array that is
to be sent by POST. I think CURL does the same too. 

The last example seems like a cross between JSON and url encoding. I'm not sure I agree with
it. 

Overall, the 2nd option makes most sense just to make it jQuery compatible - which is where
people are likely to hit this issue in the first place.
                
> POST/GET query is not processing arrays properly
> ------------------------------------------------
>
>                 Key: COUCHDB-1855
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1855
>             Project: CouchDB
>          Issue Type: Improvement
>          Components: HTTP Interface
>            Reporter: Andrew Spode Miller
>            Priority: Minor
>
> 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

Mime
View raw message