前端传送给后端的数据之formData格式你知道怎么转换吗?

264 阅读1分钟

我正在参加「初夏创意投稿大赛」详情请看:初夏创意投稿大赛

思考?为什么会有FormData格式呢

日常与后台对接时,一般数据格式都是data、params数据传参,但偶尔也是有例外:文件上传等需要我们去使用formdata格数传参,那么应该怎么去进行接口访问呢?

那它到底是什么格式呢,为什么不能用其他方式呢?

FormData接口提供了一种表示表单数据的键值对 key/value 的构造方式,并且可以轻松的将数据通过 XMLHttpRequest.send() 方法发送出去,本接口和此方法都相当简单直接。如果送出时的编码类型被设为 "multipart/form-data" ,它会使用和表单一样的格式。

问题来了,我们怎么将普通对象类型转换为formData格式呢

好了直接上代码

// 创建一个formData对象用于上传
        const fd = new FormData()
// 循环addForm这个对象,利用keys这个方法将所有的属性名转换为数组,然后遍历添加到fd这个对象中,利用属性    名取值方法将每个值添加个这个对象
        Object.keys(this.addForm).forEach(item => {
          fd.append(item, this.addForm[item])
        })

或者你也可以直接添加

你可以使用 `FormData.append` 来添加键/值对到表单里面;```
formData.append('username','Chris');

然后最后就可以发送ajax啦