incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Paul Davis <paul.joseph.da...@gmail.com>
Subject Re: callback=? parameter expected by jQuery $.ajax() causes couch to complain about bad URL
Date Sun, 02 Aug 2009 07:54:01 GMT
On Sun, Aug 2, 2009 at 3:48 AM, Nitin Borwankar<nitin@borwankar.com> wrote:
> Paul Davis wrote:
>>
>> On Sun, Aug 2, 2009 at 3:26 AM, Nitin Borwankar<nitin@borwankar.com>
>> wrote:
>>
>>>
>>> Nitin Borwankar wrote:
>>>
>>>>
>>>> $.get("http://localhost:5984/", function(data){ alert(data.version); },
>>>> "json" );
>>>> $.get("http://localhost:5984/", function(data){ alert(data['version']);
>>>> },
>>>> "json" );
>>>>
>>>> these give an alert that says "undefined".
>>>>
>>>> I have just been unable to get the browser to interpret the response
>>>> from
>>>> couch as "json".
>>>>
>>>
>>> OK, finally success.  I set the type to "json" and did a JSON.parse(data)
>>> on
>>> the data passed into the callback.
>>> It seems strange that this has to be explicitly done.  This appears to be
>>> a
>>> content tye issue.  I debugged this using curl -v more below.
>>>
>>>
>>> This is what worked
>>>
>>> include the  script
>>>    <script src="/_utils/script/json2.js"></script>
>>> amongst others
>>>
>>> $.get("http://localhost:5984/", function(data){
>>> alert(JSON.parse(data)['version']); }, "json" );
>>>
>>> this gives an alert with 0.9.0 as expected.
>>>
>>> So the major hurdle has been cleared.
>>>
>>> Paul many thanks again for your patience.
>>>
>>> Here's what I saw using curl -v pointing to just the base url for couchdb
>>>
>>> curl -v $CDBA
>>>
>>
>> Try this instead:
>>
>> curl -v -H 'Accept: application/json' http://127.0.0.1:5984/
>>
>> Peeping the jquery docs for $.get I don't see a way to set headers
>> there. Checking the jquery.couch.js it looks like it's doing something
>> like:
>>
>>
>> $.ajax({
>>    type: "PUT",
>>    url: this.uri,
>>    contentType: "application/json",
>>    ...
>> });
>>
>>
>
> OK so maybe I should just use $.ajax instead.  $.get has a data param for
> k/v pairs to be sent in the request - content type may be settable via that
> - I'll try.
> Thanks much.

That looked like K/V parameters for a form upload so I ignored it.

>
> Just curious - any reason why the default return type is not
> application/json given that one of CouchDB's selling points is that it is a
> JSON/REST based data store ?
>

Just responded in the other thread. And mostly, just cause.

> Nitin
>
>
>> HTH,
>> Paul Davis
>>
>>
>>>
>>> * About to connect() to localhost port 5984 (#0)
>>> *   Trying 127.0.0.1... connected
>>> * Connected to localhost (127.0.0.1) port 5984 (#0)
>>> * Server auth using Basic with user 'nitin'
>>>
>>>>
>>>> GET / HTTP/1.1
>>>> Authorization: Basic bml0aW46bjF0MW4=
>>>> User-Agent: curl/7.19.3 (i386-apple-darwin9.6.0) libcurl/7.19.3
>>>> zlib/1.2.3
>>>> Host: localhost:5984
>>>> Accept: */*
>>>>
>>>>
>>>
>>> < HTTP/1.1 200 OK
>>> < Server: CouchDB/0.9.0 (Erlang OTP/R12B)
>>> < Date: Sun, 02 Aug 2009 07:22:21 GMT
>>> < Content-Type: text/plain;charset=utf-8       <------------ note couch
>>> is
>>> returning a text/plain rather than application/json
>>> < Content-Length: 40
>>> < Cache-Control: must-revalidate
>>> <
>>> {"couchdb":"Welcome","version":"0.9.0"}
>>> * Connection #0 to host localhost left intact
>>> * Closing connection #0
>>>
>>> Not sure if there's a reason for this or this could be legitimately
>>> changed
>>> in 0.10
>>>
>>> Nitin
>>>
>>>
>>>
>>>
>>>
>>>
>>> Nitin
>>>
>>>
>>>
>>>
>>>>
>>>> Nitin
>>>>
>>>>
>>>>>
>>>>> Paul
>>>>>
>>>>>
>>>>>
>>>>>>
>>>>>> Nitin
>>>>>>
>>>>>>
>>>>>>>
>>>>>>> Then you can just make AJAX call's directly from the page without
>>>>>>> worrying about the callback parameter at all. This is probably
what
>>>>>>> you want.
>>>>>>>
>>>>>>> If not, then you'll need to upgrade.
>>>>>>>
>>>>>>> HTH,
>>>>>>> Paul Davis
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>>>
>>>>>>>>> HTH,
>>>>>>>>> Paul Davis
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Paul
>>>>>>>>>>>
>>>>>>>>>>> On Sat, Aug 1, 2009 at 10:43 PM, Nitin
>>>>>>>>>>> Borwankar<nitin@borwankar.com>
>>>>>>>>>>> wrote:
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Paul Joseph Davis wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Ntitn,
>>>>>>>>>>>>>
>>>>>>>>>>>>> Are you on couchdb trunk? Pretty sure
jsonp was after 0.9.
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Hey Paul,
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks much
>>>>>>>>>>>>
>>>>>>>>>>>> I am on couchdbx 0.9 on leopard 10.5.7
>>>>>>>>>>>>
>>>>>>>>>>>> Is jsonp in 0.9.1 ?  That would be motivation
for me to move.
>>>>>>>>>>>>
>>>>>>>>>>>> Also assuming the answer is yes - in the
new improved couch - do
>>>>>>>>>>>> I
>>>>>>>>>>>> just
>>>>>>>>>>>> use
>>>>>>>>>>>> the callback=? on the client request or do
I have to do
>>>>>>>>>>>> something
>>>>>>>>>>>> in
>>>>>>>>>>>> my
>>>>>>>>>>>> views to set content-type? as well.
>>>>>>>>>>>>
>>>>>>>>>>>> Thanks much,
>>>>>>>>>>>>
>>>>>>>>>>>> Nitin
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Paul Davis
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Aug 1, 2009, at 9:57 PM, Nitin Borwankar
>>>>>>>>>>>>> <nitin@borwankar.com>
>>>>>>>>>>>>> wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hello all,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I  have been banging my head against
this wall for 2 days and
>>>>>>>>>>>>>> I
>>>>>>>>>>>>>> finally
>>>>>>>>>>>>>> made
>>>>>>>>>>>>>> a crack ---
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Trying to use jQuery, $.ajax()  in
an app that calls couchdb
>>>>>>>>>>>>>> api
>>>>>>>>>>>>>> -
>>>>>>>>>>>>>> not
>>>>>>>>>>>>>> using
>>>>>>>>>>>>>> ( cannot use ) couchapp must call
from legacy app.
>>>>>>>>>>>>>> Couldn't get a successful response.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> finally just put the get query into
firefx and go the
>>>>>>>>>>>>>> following
>>>>>>>>>>>>>> which
>>>>>>>>>>>>>> explains why it's not working - but
not a clue how to work
>>>>>>>>>>>>>> around
>>>>>>>>>>>>>> this.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> get query:
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> http://localhost:5984/ptest2/_design/vt2/_view/tag?group=true&limit=5&callback=
>>>>>>>>>>>>>> ?
>>>>>>>>>>>>>> couch responds: {"error":"query_parse_error","reason":"Bad
URL
>>>>>>>>>>>>>> query
>>>>>>>>>>>>>> key:callback"}
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I don't have the option to use either
couch.js or
>>>>>>>>>>>>>> jquery.couch.js
>>>>>>>>>>>>>> but
>>>>>>>>>>>>>> have
>>>>>>>>>>>>>> to use vanilla jQuery ajax calls
$.get, $.ajax, $.post,
>>>>>>>>>>>>>> $,getJSON
>>>>>>>>>>>>>> etc.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Am I stuck without any help possible
?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Nitin
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> 37% of all statistics are made up
on the spot
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> -------------------------------------------------------------------------------------
>>>>>>>>>>>>>> Nitin Borwankar
>>>>>>>>>>>>>> nborwankar@gmail.com
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>
>>>>>>
>>>
>>>
>
>

Mime
View raw message