Javascript 使用Ajax将文件发送到api
我试图使用ajax将文件发送到api,但在下面提到的两种情况下,表单数据始终为空Javascript 使用Ajax将文件发送到api,javascript,jquery,ajax,Javascript,Jquery,Ajax,我试图使用ajax将文件发送到api,但在下面提到的两种情况下,表单数据始终为空 <form id="myformdoc"> <input type="file" size="45" name="file" id="file"> </form> <script> $('#file').on(&quo
<form id="myformdoc">
<input type="file" size="45" name="file" id="file">
</form>
<script>
$('#file').on("change", function () {
// var formdata = new FormData($('form').get(0));
let myForm = document.getElementById('myformdoc');
let formData = new FormData(myForm);
$.ajax({
url: url,
type: 'POST',
data: formdata ,
cache: false,
processData: false,
contentType: false,
success: function (color) {
;
},
error: function () {
alert('Error occured');
}
});
});
</script>
知道为什么表单数据总是空的吗?尝试在contentType参数中添加多部分/表单数据。尝试在contentType参数中添加多部分/表单数据。您需要使用
将文件添加到formData函数
将jQuery代码更改为下面的代码,它将正常工作,您可以在后端获取文件以保存它们
如果表单中有其他输入,如果愿意,也可以附加它们
formData.append('file', $(this)[0].files[0])
演示:
$'file'.onchange,函数{
//初始化formData
设formData=newformdata;
console.log$this[0]。文件
formData.append'file',$this[0]。files[0]//将文件追加到文件formData
$.ajax{
url:'url',
键入:“POST”,
数据:formData,
cache:false,
processData:false,
contentType:false,
成功:functioncolor{
console.logcolor;
},
错误:函数{
警报“发生错误”;
}
};
};
你需要使用
将文件添加到formData函数
将jQuery代码更改为下面的代码,它将正常工作,您可以在后端获取文件以保存它们
如果表单中有其他输入,如果愿意,也可以附加它们
formData.append('file', $(this)[0].files[0])
演示:
$'file'.onchange,函数{
//初始化formData
设formData=newformdata;
console.log$this[0]。文件
formData.append'file',$this[0]。files[0]//将文件追加到文件formData
$.ajax{
url:'url',
键入:“POST”,
数据:formData,
cache:false,
processData:false,
contentType:false,
成功:functioncolor{
console.logcolor;
},
错误:函数{
警报“发生错误”;
}
};
};
在表单标记add enctype=multipart/form dataAhmed Sunny中,我尝试了相同的问题,formdata总是空的{}您尝试通过id=myformdoc获取表单,但您的表单没有idin表单标记add enctype=multipart/form dataAhmed Sunny,我尝试了相同的问题,formdata总是空的{}您尝试通过id=myformdoc获取表单,但是您的表单没有id值得一提的是,new FormData'id\u of the_表单'将隐式添加表单中的所有表单字段值得一提的是new FormData'id\u of the_表单'将隐式添加表单中的所有表单字段