currently i'm using this version: 2.4.6-stable+timestamp.2013.04.06.17.37.38
El jueves, 25 de julio de 2013 11:26:07 UTC-3, Niphlod escribió: > > ehm? recent web2py should parse application/json POSTs just fine !?! > > On Thursday, July 25, 2013 3:07:02 PM UTC+2, Massimo Di Pierro wrote: >> >> The problem is that angular sends the request variables as json in body >> and not urlencoded (an expected) So you must replace >> >> def POST(table_name, **vars): >> print(vars) >> >> with >> >> def POST(table_name): >> vars = json.loads(request.body.read()) >> print(vars) >> >> On Tuesday, 23 July 2013 21:37:16 UTC-5, Franco wrote: >>> >>> Anybody? >>> >>> El domingo, 21 de julio de 2013 14:46:08 UTC-3, Franco escribió: >>>> >>>> Greetings everyone, >>>> I've been using request.restful >>>> to provide an restful interface to my angularjs app, >>>> i tried to post data from the angularjs app and it works, it sends the >>>> data but in the POST method i've got an empty dictionary, here is my code >>>> and some data logs: >>>> >>>> default controller >>>> @request.restful() >>>> def api(): >>>> response.view = 'generic.json' >>>> def GET(table_name, id=None): >>>> if table_name in db: >>>> table = db[table_name] >>>> if id == None: >>>> query = (table.id > 0) >>>> else: >>>> try: >>>> id = int(id or 0) >>>> except: >>>> id = 0 >>>> query = (table.id == id) >>>> return {table_name : db(query).select()} >>>> def POST(table_name, **vars): >>>> print(vars) >>>> return locals() >>>> >>>> angular code used to post data: >>>> $http.post('http://127.0.0.1:8000/angularjs/default/api/person/', item >>>> ).success(function(data) { >>>> console.log('POST: '+ item.first_name +' Result: '+ data); >>>> }); >>>> >>>> chrome network log: >>>> >>>>> >>>>> 1. Request URL: >>>>> http://127.0.0.1:8000/angularjs/default/api/person/ >>>>> 2. Request Method: >>>>> POST >>>>> 3. Status Code: >>>>> 200 OK >>>>> 4. Request Headersview source >>>>> 1. Accept: >>>>> application/json, text/plain, */* >>>>> 2. Accept-Encoding: >>>>> gzip,deflate,sdch >>>>> 3. Accept-Language: >>>>> es,en-US;q=0.8,en;q=0.6 >>>>> 4. Connection: >>>>> keep-alive >>>>> 5. Content-Length: >>>>> 46 >>>>> 6. Content-Type: >>>>> application/json;charset=UTF-8 >>>>> 7. Cookie: >>>>> csrftoken=hMi7rvIHaxAu09tX0H8c2SDqmwwgS7Ra; >>>>> session_id_admin=127.0.0.1-9ef67e29-1352-4fef-a621-fcc0c3fa9182; >>>>> session_id_angularjs=127.0.0.1-9453b1e9-444d-4fe4-8110-9d956bfda316 >>>>> 8. Host: >>>>> 127.0.0.1:8000 >>>>> 9. Origin: >>>>> http://127.0.0.1:8000 >>>>> 10. Referer: >>>>> http://127.0.0.1:8000/angularjs/default/index >>>>> 11. User-Agent: >>>>> Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, >>>>> like Gecko) Chrome/28.0.1500.72 Safari/537.36 >>>>> 5. Request Payloadview source >>>>> {id:0, first_name:John, last_name:Doe} >>>>> 1. first_name: "John" >>>>> 2. id: 0 >>>>> 3. last_name: "Doe" >>>>> 6. Response Headersview source >>>>> 1. Cache-Control: >>>>> no-store, no-cache, must-revalidate, post-check=0, pre-check=0 >>>>> 2. Connection: >>>>> keep-alive >>>>> 3. Content-Length: >>>>> 4 >>>>> 4. Content-Type: >>>>> text/html; charset=utf-8 >>>>> 5. Date: >>>>> Sun, 21 Jul 2013 17:38:41 GMT >>>>> 6. Expires: >>>>> Sun, 21 Jul 2013 17:38:41 GMT >>>>> 7. Pragma: >>>>> no-cache >>>>> 8. Server: >>>>> Rocket 1.2.6 Python/2.7.5 >>>>> 9. Set-Cookie: >>>>> >>>>> session_id_angularjs=127.0.0.1-9453b1e9-444d-4fe4-8110-9d956bfda316; >>>>> Path=/ >>>>> 10. X-Powered-By: >>>>> web2py >>>>> >>>>> >>>> I made some tests using the "requests" module and it works, so for >>>> instance i think that the problem is within the way that angularjs sends >>>> the data. >>>> >>>> Thanks in advance, >>>> >>>> Franco >>>> >>>>> -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.