一、formData格式传参与图片转化流格式
备注:不需要在全局配置请求头,通过formData可讲请求头转化为表单格式
1.首先new一个formData对象,并将参数append到formData中
//接口文件 index.js
import axios from '@/api/http'
export default {
payEdit(params){
return axios.post(`/sail/wxsite/wxa/payaccessconfig/edit`,params)
},
}
//请求接口
import api from 'index'
let file = ‘auioeorhthhti’
let dataForm = {name:'张三',age:'18'}
const formData = new FormData();
formData.append("file", file);
formData.append(ayAccessDetailParam",JSON.stringify(dataForm)
api.payEdit(formData).then(res=>{
console.log(res)
})
2.FormData常用参数
FormData接口提供了一种表示表单数据的键值对key/value的构造方式,并且可以轻松的将数据通过XMLHttpRequest.send()发送出去,如果送出时的编码类型被设为"multipart/form-data",它会使用和表单一样的格式
(1)FromData
FormData()构造函数用于创建一个新的FormData对象
var formData = new FormData(form)
var formData = new FormData()
form可选参数
这种方式创建的formData对象会自动将form中的表单值包含进去,包括文件内容也会被编码之后包含进去
(2)方法:
1)FormData.append()向FormData中添加新的属性值,FormData对应的属性值存在也不会覆盖原值,而是新增一个值,如果属性不存在,则新增一项属性值
formData.append(name, value);
formData.append(name, value, filename);
name:名称;
value:值
filename(可选):传给服务器文件的名称,当一个Blob或File被作为第二个参数出现的时候,Blob对象的默认文件名是“blob”,File对象的默认文件名是该文件的名称
2)FormData.set()给FormData设置属性值,如果FormData对应的属性值存在则覆盖原值,否则新增一项属性值
formData.set(name, value);
formData.set(name, value, filename);
name:名称;
value:值
filename(可选):传给服务器文件的名称,当一个Blob或File被作为第二个参数出现的时候,Blob对象的默认文件名是“blob”
3)FormData.get()返回FormData对象中给定键关联的第一个值
formData.get(name);
var formData = new FormData();
formData.append('username', 'Chris');
formData.append('username', 'Bob');
formData.get('username'); // Returns "Chris"
name:将要获取值的名称
4)FormData.getAll()返回一个包含FormData对象中给定键关联的所有值的数组
formData.getAll(name);
var formData = new FormData();
formData.append('username', 'Chris');
formData.append('username', 'Bob');
formData.getAll('username'); // Returns ["Chris", "Bob"]
name:表示要检索的key名称
5)FormData.delete()从FormData对象里面删除一个键值对
formData.delete(name);
var formData = new FormData(myForm);
formData.delete('username')
name:要删除键的名字