formData:解决formData使用append追加后console仍为空

let $input = $("#file");
$input.on("change", function () {
    files = this.files;
    console.log(files);
    let formData = new FormData();
    formData.append('image_url', files[0]);
    console.log(formData)
})

在这里插入图片描述

在对formData使用append方法添加数据后,console输出仍为空

解决:需要用formData.get("键")的方法获取值

let $input =$("#file");
$input.on("change", function () {
    files = this.files;
    console.log(files);
    let formData = new FormData();
    formData.append('image_url', files[0]);
    console.log(formData.get('image_url'))
})

在这里插入图片描述

如果在使用 FormData 对象追加图片文件后,发送请求时发现 payload 中出现乱码,可能是因为没有正确设置请求头中的 Content-Type。应该将 Content-Type 设置为 multipart/form-data,这样服务器才能正确地解析请求,获取到文件数据。 以下是一个追加图片文件并发送请求的示例代码: ``` // 创建一个 FormData 对象 var formData = new FormData(); // 创建一个 <input type="file"> 元素 var fileInput = document.createElement('input'); fileInput.type = 'file'; fileInput.name = 'image'; // 监听文件选择事件 fileInput.addEventListener('change', function(event) { // 获取选择的文件 var file = event.target.files[0]; // 将文件添加到 FormData 对象中 formData.append('image', file); }); // 添加 <input type="file"> 元素到表单中 document.querySelector('form').appendChild(fileInput); // 创建一个 XMLHttpRequest 对象 var xhr = new XMLHttpRequest(); // 设置请求方法和 URL xhr.open('POST', '/upload'); // 设置请求头中的 Content-Type xhr.setRequestHeader('Content-Type', 'multipart/form-data'); // 发送 FormData 对象 xhr.send(formData); // 监听请求状态的变化 xhr.onreadystatechange = function() { if (xhr.readyState === 4 && xhr.status === 200) { // 请求成功,处理返回的数据 console.log(xhr.responseText); } }; ``` 在上面的代码中,我们首先创建了一个 FormData 对象,并创建了一个 <input type="file"> 元素,监听了文件选择事件,并将选择的文件添加到 FormData 对象中。然后,我们创建了一个 XMLHttpRequest 对象,并设置了请求方法和 URL。接着,我们通过 setRequestHeader() 方法设置了请求头中的 Content-Type 为 multipart/form-data。最后,我们使用 send() 方法将 FormData 对象发送出去,并监听了 XMLHttpRequest 对象的 onreadystatechange 事件,在请求状态变化时进行处理。
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

KaiSarH

如果觉得文章不错,可以支持下~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值