2017-04-13 28 views
0

我想從我的javascript傳遞給蟒蛇FLASK APP,比列表中的「數據」 JavaScript代碼發送工作是「數據」列表在Python的瓶獲取的JSON列表

function fetch() 
    { 
    var jsonObj={'email':"[email protected]",'Data': ['Name','Phone']}; 
     $.ajax({ 
       url:'http://192.168.56.102:5000/fetch', 
       data:jsonObj, 
       type:"POST", 
       dataType:"json", 
       crossDomain:true 
      }).done(function(result){console.log(result)}).fail(function(result){console.log("error")}); 
    } 

的Python的FLASK代碼

@app.route("/fetch", methods=["POST"]) 
def fetch(): 
    print request.json 
    return jsonify({"Status":200}) 
從上面的print語句,我得到

ImmutableMultiDict([( '數據[]',u'Name「) ( '數據[]',u'Phone '),

但我想這樣的事情

(' 電子郵件 'u' [email protected]')])

ImmutableMultiDict({ '郵件': '[email protected]', '數據': [ '名稱', '電子郵件']})

總之我想在服務器端,將名單由JSON發送。

PS:我已經嘗試How to get a JSON Object in Python (Flask Framework) 但實現這個我收到

ImmutableMultiDict([])

回答

1

您需要將數據轉換爲JSON自己,並使用contentType來設置內容類型標題。

$.ajax({ 
    url:'http://192.168.56.102:5000/fetch', 
    data: JSON.stringify(jsonObj), 
    type:"POST", 
    contentType:"application/json", 
    ...