2013-08-05 100 views
0

我可能在這裏做了一些愚蠢的事情,但由於某種原因,對我來說似乎是完全有效的ajax請求無效。AJAX請求在收到時爲空

這是AJAX請求:

data = {emotions: lRes}; 
console.log(data); //Data seems to be exactly what I'm looking for 
$.ajax({ 
    type: "POST", 
    data: data, 
    url: document.location.origin + "/facedata/" + slug, 
    success: function(){ 
     console.log("Success!"); 
    } 
}); 

但隨後在AJAX請求的接收端:

@app.route('/facedata/<slug>', methods=["POST"]) 
def facedata(slug): 
    if request.method == "POST": 
     try: 
      post = Post.objects.get_or_404(slug=slug) 
      print request.args 
      sys.stdout.flush() 
      data = request.args.get("emotions") 
      post.face_data.append(data) 
      post.save() 
     except: 
      traceback.print_exc(file=sys.stdout) 

當我登錄指定參數時,我剛剛得到一個空ImmutableMultiDict對象,所以情緒呼喚仍然失敗。有人知道這裏究竟發生了什麼嗎?

+0

@JonClements我覺得這樣很愚蠢,但謝謝你很多回答這個問題。你可以讓這個答案,我可以接受嗎? –

回答

1

request.args是URL中提供的參數。瓶的request對象包含.form屬性包含發佈的數據 - 所以你必須使用request.form訪問通過您的AJAX請求發送的數據,例如:

@app.route('/facedata/<slug>', methods=["POST"]) 
def facedata(slug): 
    emotions = request.form.get('emotions')