2014-10-18 93 views
1

我想用Django中的jquery發出post請求。不幸的是,我還沒有成功。事實上,我只看到螢火蟲POST請求,其狀態是200,我得到以下結果(太新張貼任何圖像):Django中的jquery post請求+響應

https://drive.google.com/a/essec.edu/file/d/0B5MagNFQFkbXeVBNV1pfZC1sbk0/view?usp=sharing

誰能幫我找到了我做錯了?

我的代碼來自這裏: Need a simple working ajax example for django forms,所以我認爲它應該是正確的。

僅供參考,settings.py中我評論過的CSRF線放好這個問題的時間beeing:

「# 'django.middleware.csrf.CsrfViewMiddleware',」

views.py :

import json 
from django.shortcuts import render 
from django.http import HttpResponse 


def index(request): 

    return render(request, 'index.html') 


def ajax_test(request): 
    if request.method == 'POST' and request.is_ajax(): 
     name = request.POST['name'] 
     city = request.POST['city'] 
     message = name + ' lives in ' + city 

     return HttpResponse(json.dumps({'message': message})) 

    return render(request, 'ajax.html') 

的index.html:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script src="/static/js/ajax.js"></script> 
<script src="http://getbootstrap.com/dist/js/bootstrap.js"></script> 


<form id="my_form" action="" method="post"> 
<input type="submit" value="Send"> 
</form> 

ajax.js:

$(document).ready(function(){ 

    $("#my_form").submit(function(){ 
    $.post("", 
    {name:"Donald Duck", 
    city:"Duckburg", 
    }, 
    function(data,status){ 
     alert("Data: " + data + "\nStatus: " + status); 
    }) 
    .fail(function(xhr) { 
     console.log("Error: " + xhr.statusText); 
     alert("Error: " + xhr.statusText); 
    }); 
    return false; 
    }); 

}); 

urls.py:

from django.conf.urls import patterns, url 

from polls import views 

urlpatterns = patterns('', 
    url(r'^$', views.index, name='index'), 
    url(r'^ajax/$', views.ajax_test, name="ajax"), 
) 

回答

1

我敢打賭你的表單操作。嘗試將其設置爲您帖子的網址。

0

你的表單沒有 「行動」 定義

$.post("", 

這必須有定義的URL。更改爲

$.post("/ajax/", 

此外,當您正確實施它,不要擺脫csrf標記。您只需傳遞序列化表單數據(其中將包含csrf標記)。