gpt4 book ai didi

python - 如何在 Django 中使用 Ajax 提交表单

转载 作者:行者123 更新时间:2023-12-01 09:33:47 24 4
gpt4 key购买 nike

我正在尝试使用 Ajax 提交 HTML Form,但我没有收到任何成功或失败的警报。

index.html

<form method="post" class="needs-validation" enctype="multipart/form-data"  action="/upload/" id="fupload">

<div class="custom-file">
<input type="file" class="custom-file-input" id="data_files" name="data_files" multiple required>
<label class="custom-file-label" for="data_files">Choose files</label>
</div>

<button type="submit">Upload files</button>

</form>

<script type="text/javascript">
var frm = $('#fupload');
frm.submit(function () {
$.ajax({
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
alert('Form Submitted');
},
error: function(data) {
alert('Form submission failed');
}
});
return false;
});

views.py

@csrf_exempt
def upload(request):
if request.method == 'POST':
return HttpResponse()

任何猜测为什么它不起作用

最佳答案

尝试更改以下内容:

  • 删除操作
  • 将按钮更改为 type="button" 并添加事件监听器

    <form method="post" class="needs-validation" id="fupload">

    <div class="custom-file">
    <input type="file" class="custom-file-input" id="data_files" name="data_files" multiple required>
    <label class="custom-file-label" for="data_files">Choose files</label>
    </div>

    <button type="button" id="upload-files-btn">Upload files</button>
    </form>

    <script type="text/javascript">
    var frm = $('#fupload');
    var btn = $('#upload-files-btn');
    btn.bind('click', handleClick);
    var formData = new FormData(); // Use FormData instead
    formData.append('file', frm.files[0], frm.files[0].name) // The first argument is the 'key' of the form data so change it to whatever works.
    var handleClick = function (event) {
    event.preventDefault();
    $.ajax({
    type: frm.attr('method'),
    url: '/upload/',
    data: formData,
    contentType: false, // add this to indicate 'multipart/form-data'
    success: function (data) {
    alert('Form Submitted');
    },
    error: function(data) {
    alert('Form submission failed');
    }
    });
    }
    </script>

关于python - 如何在 Django 中使用 Ajax 提交表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49718302/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com