簡體   English   中英

ajax無法與Django一起使用

[英]ajax is not working with django

我正在創建一個在帖子中添加評論的表單,它沒有ajax就可以工作,因為ajax將表單數據發送為None。

ajax:

<script>
        $(function() {
            $("#myform").on("submit", function(e) {
                e.preventDefault();
                $.ajax({
                    url: $(this).attr("action"),
                    type: 'POST',
                    data: $(this).serialize(),
                    beforeSend: function() {
                        $("#message").html("sending...");
                    },
                    success: function(data) {
                        confirm('worked')
                    }
                });
            });
        });
</script>

表格:

<form action="{% url 'newcom' Post.id%}" id="myform">
    <div class="input-group">
        <input type="text" name="comment_body" class="form-control" placeholder="Leave a comment">
        <div class="input-group-btn">
            <button class="btn btn-success" id="message" type="submit">
                <i class="glyphicon glyphicon-send"></i>
            </button>
        </div>
    </div>
    <br>
</form>

風景:

def new_comment(request, post_id):
    body = request.GET.get('comment_body')
    post = Post.objects.get(id=post_id)
    Nat.objects.create(fromUser=request.user.username,   toUser=post.created_by, content="commented on your post")
    Comment.objects.create(post=post, created_by=request.user,
                          created_at=timezone.localtime(timezone.now()), comment=body)
    return HttpResponseRedirect(request.META.get('HTTP_REFERER'))

<form>元素正在使用GET發送請求,並且您的服務器端代碼需要GET值。 但是,您的AJAX請求正在使用POST 您需要將AJAX請求類型從更改為

type: 'POST'

type: 'GET'

或者您可以完全忽略該屬性,因為jQuery的默認設置是使用GET

另外,您可以保持AJAX方法不變,並修改Django代碼以接收POST變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM