首页 > 解决方案 > AJAX POST 实际上并未使用 Django 发送 POST 数据

问题描述

我想使用 AJAX 帖子向我的 Django 后端提交表单。我在页面上有多个表单,但只希望用户提交的那个是发送的那个。

表单以模态形式保存:

<div class="modal-body">
    <div class='content-section'>
        <form method="POST" id="form{{ prod.id }}" class="showform" value="{{ prod.id }}" >
            <input type="hidden" value="{{ prod.id }}" name="prodid">
            {% csrf_token %}
            <fieldset class='form-group'>
                {{ form|crispy}}
            </fieldset>
        </form>
    </div>
</div>

<div class="modal-footer">
    <div class='form-group'>
        <button class="btn btn-outline-info submit-form" value={{prod.id}} form="form{{ prod.id }}"
            >Save
            To Profile</button>
    </div>
    <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
</div>

当按下提交按钮时,它会触发以下 AJAX :

 $(document).on('click', '.submit-form', function () {

        var thisButton = $(this)[0]
        var prodID = $(this).val();
        var form = $("form" + prodID);

        $.ajax({
            type: 'post',
            headers:{
                "X-CSRFToken": '{{ csrf_token }}'
            },
            url: '/ajax/validate_showadd/',
            dataType: 'json',
            contentType: 'json',
            data: {
                'form': form.serialize(),
                "prodID":prodID,
            },
            success: function (data) {
                console.log("sent")
            },
            error: function(data) {
                console.log("error")
            }
        });
        return false;
    });

但是,在 Django 中,每当我尝试访问这些值中的任何一个时,它都会返回“None”,并且 POST 请求的 QueryDict 为空。

谢谢

标签: javascriptjqueryhtmldjangoajax

解决方案


推荐阅读