在Django中如何使用jQuery / Ajax进行POST? [英] How do I POST with jQuery/Ajax in Django?

查看:216
本文介绍了在Django中如何使用jQuery / Ajax进行POST?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在Django中使用jQuery / AJAX来发送数据,并且遇到麻烦。当我运行下面的代码并点击测试按钮,整个页面重新加载,这不是我想要发生的(这就是为什么我使用AJAX)。我也无法确认ajax请求是到达python视图。任何建议?

I am trying to POST data using jQuery/AJAX in Django and am having trouble. When I run the code below and click on the 'test' button, the entire page re-loads again, which isn't what I want to happen (that's why I'm using AJAX). I'm also not able to confirm the ajax request is getting to the python view. Any advice?

我做了编辑返回false和 event.preventDefault()。没有加载新页面,但是我仍然无法在div id ='message'字段中看到更新的文本。我不知道数据是否被发送。我在控制台看到:

I've made the edits for return false and event.preventDefault(). A new page doesn't load, but I'm still not able to see the updated text in the div id = 'message' field. I'm not sure if the data is getting sent. I'm seeing in the console:

POST /edit_favorites/ HTTP/1.1" 403 2294



views.py



views.py

from django.shortcuts import render_to_response
from django.http import HttpResponse

def edit_favorites(request):
    if request.is_ajax():
        message = "Yes, AJAX!"
    else:
        message = "Not Ajax"
    return HttpResponse(message)



urlconf:



urlconf:

url(r'^edit_favorites/', 'edit_favorites'),



html:



html:

<form method='post' id ='test'>
     <input type="hidden" value="video34" />
    <input type='submit' value='Test button'/>

    <div id = 'message'>Initial text</div>

</form>



javascript:



javascript:

    <script type="text/javascript">
   $(document).ready(function() {
       $("#test").submit(function(event){
       event.preventDefault();
            $.ajax({
                 type:"POST",
                 url:"/edit_favorites/",
                 data: {
                        'video': $('#test').val() // from form
                        },
                 success: function(){
                     $('#message').html("<h2>Contact Form Submitted!</h2>") 
                    }
            });
            return false;
       });

    });
</script>


推荐答案

错位 return false; / code>。它应该在 .submit()函数的末尾。所以向上移动一行。

Misplaced return false;. It should be at the end of .submit() function. So move it one line upwards.

$(document).ready(function() {
       $("#test").submit(function(event){
            $.ajax({
                 type:"POST",
                 url:"/edit_favorites/",
                 data: {
                        'video': $('#test').val() // from form
                        },
                 success: function(){
                     $('#message').html("<h2>Contact Form Submitted!</h2>") 
                 }
            });
            return false; //<---- move it here
       });

});

更新:

关于问题 POST / edit_favorites / HTTP / 1.1403 2294 。检查这个与您的问题类似的信息,

About the issue POST /edit_favorites/ HTTP/1.1" 403 2294. Check on this post which looks similar to your issue,

Django jQuery发布请求

这篇关于在Django中如何使用jQuery / Ajax进行POST?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆