gpt4 book ai didi

jquery - 使用 FormData 与 form.serialize() 与 django 进行 ajax 发帖

转载 作者:行者123 更新时间:2023-12-01 00:02:58 25 4
gpt4 key购买 nike

我想使用 jquery 在 django 中发布表单。我希望我的表单也能够发布文件。正如我所读,使用 form.serialize() 不会传递文件字段的内容。所以我读到了有关 FormData 的内容。但是当我使用 FormData 时,我的 django View 不会将其识别为 ajax 请求。我的代码(使用序列化)

$.ajax({
url:'/customer/create/',
type: form.attr('method'),
contentType:'application/x-www-form-urlencoded;charset=utf-8',
dataType:'json',
data:form.serialize(),
success:onSuccess,
error: function(xhr, ajaxOptions, thrownError){
alert(thrownError + '\n' + xhr.status + '\n' + ajaxOptions);
}
});

以及表单数据

fd = new FormData(form)
$.ajax({
url:'/customer/create/',
type: form.attr('method'),
contentType:'multipart/form-data',
dataType:'json',
data:fd,
success:onSuccess,
error: function(xhr, ajaxOptions, thrownError){
alert(thrownError + '\n' + xhr.status + '\n' + ajaxOptions);
}
});

我在这里错过了什么吗?我不确定这一定是正确的 contentType。 mutipart/form-data 也在表单的 enctype 属性中设置。

我也了解 jquery-forms,但还不想使用它。我只希望这种情况发生在我的一种形式上,所以我不想将其加载到我的页面中。我想在去之前看看是否有解决方案。

最佳答案

我需要做这样的事情:

$('#cover_url_file_input').on('change', function(e) {

var file, imgData;
file = this.files[0];

if (file) {

imgData = new FormData();
imgData.append('cover_url', file);

$.ajax({
type: 'POST',
url: $('#cover-form').attr('action'),
data: imgData,
processData: false,
contentType: false,
cache: false,

success: function(result) {
if (result.info === 'OK') {
console.log('OK');
}
}

});

}
});

关于jquery - 使用 FormData 与 form.serialize() 与 django 进行 ajax 发帖,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21375633/

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