2017-05-25 39 views
1

我正在寫一個非常簡單的演示Web應用程序,而我似乎無法使用AJAX蟒蛇JS傳遞一個JSON對象。Python的瓶 - request.json返回無類型的,而不是JSON字典

我已經嘗試了一些建議,從人們對這樣類似的問題,比如使用.get_json()代替.json,傳遞對象,而在使用JavaScript JSON.stringify

任何想法,我哪塊在這裏失蹤?

的Javascript

var run_method = function(){ 

    var data1 = {"word":"hello"} 
    console.log("Before " + data1); 
    $.ajax({ 
     url : "/examplemethod", 
     type : "POST", 
     data : data1//JSON.stringify(data1) 
    }) 
    .done(function(data){ 
     var data = JSON.parse(data); 
     console.log(data); 

    }); 
} 

的Python

@app.route("/examplemethod", methods=['POST', 'GET']) 
def example_method(): 
    global data 
    if request.method == 'POST': 
     print request 
     data = request.json 
     print "data", data 
    return "after "+ data["word"] 

我已經試過這每一個變化給出了一個500錯誤

TypeError: 'NoneType' object has no attribute 'getitem'

顯然,這是因爲數據應該是dictionary/json,而不是None。但是,如何讓它作爲字典返回?

+0

你試過我的答案嗎? – e4c5

+0

是的,我確實 - 謝謝。但是,它似乎沒有解決任何問題。 –

+0

您的回答沒有解決我的問題,所以我不接受它。我最終搞清楚了,但沒有使用你在這裏描述的內容。對不起,我沒有時間去挖掘這些代碼並進一步細化。 –

回答

3

因爲您沒有將JSON發送到燒瓶應用程序(請參閱thisthis)。您當前的代碼會生成標準的urlencoded表單文章。這在入門又會使得填充在request.form

request.form.get('word') 

切換到一個JSON後按照準則在上面的Q &至於通過request.json訪問數據。

相關問題