incubator-couchdb-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nitin Borwankar <ni...@borwankar.com>
Subject Re: callback=? parameter expected by jQuery $.ajax() causes couch to complain about bad URL
Date Sun, 02 Aug 2009 07:48:30 GMT
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.

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 ?

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