2014-04-20 18 views
0

我怎麼能確認我的形式發送,其AJAX/JSONPython中,CherryPy的檢查,如果一個JSON形式發送

function save_formular() { 
    var values = $$("form_elements").getValues(); 
    webix.ajax().header({ 
    "Content-type":"application/json" 
    }).post("/create", JSON.stringify(values), function() { 
    document.getElementById("content").innerHTML="<div>OK!</div>"; 
    }); 
} 

我堅持我的蟒蛇方法創建:

def create(self): 

    # i want to check first if the form was sent 
    data = cherrypy.request.json # error 
    # AttributeError: 'Request' object has no attribute 'json' 

    return sometext 
create.exposed = True 

是否有另一種簡單的方法來獲得這些Ajax值?

+0

http://stackoverflow.com/questions/3743769/how-to-receive-json-in-a-post-request-in-cherrypy你見過這個嗎? –

+0

[add'@ cherrypy.tools.json_in()'decorator](http://stackoverflow.com/a/18367567/4279) – jfs

回答

0

好了,現在工作..

,但我仍然需要從Python方法的返回文本(例如search_ajax):

的Python:

@cherrypy.expose 
@cherrypy.tools.json_out() 
@cherrypy.tools.json_in() 
def search_ajax(self): 
    # JSON-Values laden 
    mydata = self.request.json 

    filename = mydata["id"] 

    if self.Datenbank.search(filename) == True: 
    return '<b>OK</b>' 
    else: 
    return '<b>NOT FOUND</b>' 

search_ajax.exposed = True 

的Javascript:

function search_k() { 
    var values = $$("elements_k").getValues(); 
    webix.ajax().header({ 
    "Content-type":"application/json" 
    }).post("/search_ajax", JSON.stringify(values), function() { 
    document.getElementById("content").innerHTML="<div>RESULT</div>"; 
    }); 
} 

而不是結果我想要好或未找到

+0

我想我明白了,只是返回json.dumps(「MERCEDES」) 然後你會有這個文本在功能(響應) – user3553787