Found the answer here: https://stackoverflow.com/questions/37806801/can-not-post-data-via-ajax-to-web2py-rest-api-possible-cors-issue
def api(): *from gluon.serializers import json* response.view = 'generic.'+request.extension def GET(*args,**vars): patterns = 'auto' parser = db.parse_as_rest(patterns,args,vars) if parser.status == 200: return dict(content=parser.response) else: raise HTTP(parser.status,parser.error) def POST(table_name,**vars): #return db[table_name].validate_and_insert(**vars) #data = gluon.contrib.simplejson.loads(request.body.read()) *return json(db[table_name].validate_and_insert(**vars))* return dict() def PUT(table_name,record_id,**vars): return db(db[table_name]._id==record_id).update(**vars) def DELETE(table_name,record_id): return db(db[table_name]._id==record_id).delete() def OPTIONS(*args,**vars): print "OPTION called" return True return dict(GET=GET,POST=POST,PUT=PUT,DELETE=DELETE,OPTIONS=OPTIONS) On Tuesday, 18 February 2020 11:47:22 UTC-8, Kevin Keller wrote: > > I didnt know I need to post the data as form data. > > Now it works. > > How I can post a JSON payload instead and use that payload for > insert_and_validate? > > I tried this: > > def POST(table_name,**vars): > import json > data=json.loads(request.body.read()) > data=json.dumps(data) > return dict(db[table_name].validate_and_insert(data)) > > On Tuesday, 18 February 2020 11:02:20 UTC-8, Kevin Keller wrote: >> >> Even when I manually try to convert the post data I get the error: >> >> def POST(table_name,**vars): >> restdata=request.vars >> >> return >> dict(db[table_name].validate_and_insert(restdata.decode("utf-8"))) >> >> >> On Tuesday, 18 February 2020 10:01:14 UTC-8, Kevin Keller wrote: >>> >>> When creating a simple rest api with web2py: >>> >>> @request.restful() >>> def api(): >>> >>> def GET(*args, **vars): >>> parser=db.parse_as_rest('auto',args,vars) >>> return dict(content=parser.response) >>> >>> def POST(table_name,**vars): >>> return dict(db[table_name].validate_and_insert(**vars)) >>> >>> return locals() >>> >>> I can get access via rest api to any table but auth_users. >>> >>> Is there a way I can enable this? >>> >>> I would like to provision new users via rest api to my web2py app. >>> >>> Authentication is done via external IDP via OIDC. >>> >>> So I basically just need the firstname, lastname and email to be >>> provisioned via rest. >>> >>> Authentication to provision is at the moment an after thought. >>> >>> I just need to get this working asap. >>> >>> Thank you! >>> >>> >>> -- Resources: - http://web2py.com - http://web2py.com/book (Documentation) - http://github.com/web2py/web2py (Source code) - https://code.google.com/p/web2py/issues/list (Report Issues) --- 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. To view this discussion on the web visit https://groups.google.com/d/msgid/web2py/9dca454e-fdc6-47b2-aecb-10b7073b2467%40googlegroups.com.