2017-04-25 47 views
-1

我有一個問題,試圖從我的燒瓶項目中的ajax查詢中獲取數據。服務器收到一個「NoneType」。Nonetype從獲取ajax POST數據與燒瓶

這裏是我的ajax查詢:

function doChart(val){ 
    console.log(val); 
    $.ajax({  
      url : baseURL + '/get-stat-data', 
      dataType: 'json', 
     data: JSON.stringify({ 
       item: val 
      }), 
      type : "POST", 
     success:function(data){ 
      //alert(data.substr(1, data.length - 2)); 
      alert(data);  
     }, 

     error: function(XMLHttpRequest, textStatus, errorThrown) { 
      alert("Status: " + textStatus+", Error: " + errorThrown); 
     } 
    }); 

} 

瓶代碼:

@application.route("/get-stat-data",methods=['GET', 'POST']) 
def get_stat_data(): 
    if request.method == "POST": 
     json = request.json 
     #con = connect_db() 
     print("data = "+json) 

錯誤,我得到:

print("data = "+json) 
TypeError: Can't convert 'NoneType' object to str implicitly 

謝謝您的幫助

+0

您正在發送字符串化的json,並且您正在接受json。另外,它不應該是'request.get_json()' –

+0

我試圖用'request.get_json()'改變它,得到了'ValueError:View函數沒有返回響應' –

+0

你的函數需要返回一些東西結束。這是另一個問題。在最後添加一個return語句,看看你的print語句是否打印了一些東西。 –

回答

-1

把你的數據作爲

data: JSON.stringify({ 
     item: val 
     }), 

和提contentType: 'application/json;charset=UTF-8'

,然後在Python -

postdata = request.json["item"] 

這應該做的伎倆。

+0

這個解決方案給我一個400個壞請求和我的POST –

+0

編輯成另一種方法。 –

+0

它的工作原理是,我在那之後保留了'JSON.stringify'。謝謝! –