gpt4 book ai didi

javascript - Ajax 发布 FormData 和表单

转载 作者:太空宇宙 更新时间:2023-11-04 15:47:55 25 4
gpt4 key购买 nike

我有这个表格:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"> </script>
<link rel="stylesheet" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/themes/smoothness/jquery-ui.css">


<div class='col-sm-6' style="padding-left:0px;" >
<form action="/main/" method="post" id="my_form" enctype="multipart/form-data">
{% csrf_token %}
<br>

<div> <input type="text" name="description" id="id_description" /> </div>
<div> <input type="file" name="image" id="id_image" /> </div>


<button type="submit" disabled style="display: none" aria-hidden="true"></button>
<input class="btn btn-success" type="submit" name="submit" value="Gem" />
</form>
</div>

这样就成功发送了表单,并且在服务器端是有效的。但是我无法从服务器上的表单访问图像。

<script>
var frm = $('#my_form');
frm.submit(function (e) {
e.preventDefault(e);
$.ajax({
async: true,
type: frm.attr('method'),
url: frm.attr('action'),
data: frm.serialize(),
success: function (data) {
console.log("success")
},
error: function(request, status, error) {
console.log("error")
}
});
});
</script>

此解决方案发送带有图像文件的 FormData,但它不包含其他表单数据,并且该表单在服务器端无效:

<script type="text/javascript">
var frm = $('#my_form');
frm.submit(function (e) {
e.preventDefault(e);

var formData = new FormData();
formData.append(
"image",
document.getElementById("id_image").files[0]
);

$.ajax({
async: true,
type: frm.attr('method'),
url: frm.attr('action'),
data: formData,
cache: false,
processData: false,
contentType: false,
type: 'POST',

success: function (data) {
console.log("success")
},
error: function(request, status, error) {
console.log("error")
}
});
});


</script>

有没有办法同时发送文件和另一个表单dara?

最佳答案

尝试将 this 传递给 FormData 此外,您设置了两次 type

var frm = $('#my_form');
frm.submit(function (e) {
e.preventDefault(e);

var formData = new FormData(this);

$.ajax({
async: true,
type: frm.attr('method'),
url: frm.attr('action'),
data: formData,
cache: false,
processData: false,
contentType: false,

success: function (data) {
console.log("success")
},
error: function(request, status, error) {
console.log("error")
}
});
});

关于javascript - Ajax 发布 FormData 和表单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53421083/

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