需要一个简单的django表单的工作ajax示例

时间:2013-05-29 12:52:27

标签: jquery ajax django

基本上我需要类似于在django中完成的http://www.w3schools.com/jquery/jquery_ajax_get_post.asp。我已经下载了样本并使用localhost + php在本地进行了测试,但它运行良好但我似乎无法让它在django中工作,无论示例多么简单。这基本上是基于上面链接中的示例所做的,稍作修改

javascript:

<script type="text/javascript">
$(document).ready(function(){
  $("#my_form").submit(function(){
    $.post("",
    {name:"Donald Duck",
     city:"Duckburg"},
    function(data,status){
      alert("Data: " + data + "\nStatus: " + status);
    })
    .fail(function() { alert("error"); });
    return false;
  });
});
</script>

网址:

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

意见:

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})) #tried without the json. Doesn't work either

    return render(request, 'books/ajaxTest.html')

html:

<form id="my_form" action="" method="post" {% if form.is_multipart %}enctype="multipart/form-data"{% endif %}>{% csrf_token %}
<input type="submit" value="Send">
</form>

表格假设包含一个django形式,但由于我甚至无法使基础工作,这将是毫无意义的。有人提到了csrf_token标签,但删除它也无法解决问题。上面示例的输出基本上只产生警报('错误'),而不是其他任何东西。我经历了很多例子,但我甚至无法获得最基本的工作

1 个答案:

答案 0 :(得分:8)

OK..thx为你的评论..我把它全部整理出来......基本上我错过了{%csrf_token%}和csrfmiddlewaretoken:'{{csrf_token}}'..只是为了那些人的利益谁可能正在读这个...新代码看起来像这样

javascript:

<script type="text/javascript">
$(document).ready(function(){

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

});
</script>

html:

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