提示content-type出错,需要fprmData格式时,如何操作?
1、const formData = new FormData(); // new一个formdata对象
2、讲需要传递的参数以append的形式添加到formdata中
// values是我在form表单中收集到的对象
for (let i in values) {
formData.append(i, values[i]);
}
3、将整理好的formdata以参数调接口发请求
dispatch({
type: 'mydata/addDataDocument', // 接口地址
payload: formData, //参数
}).
注意:fromdata格式的数据在append完成之后,无法直接打印formdata中的数据
获取值时方式及结果如下:
formData.get("键名"); // "v1"
formData.getAll("键名"); // ["v1","v2","v3"]
/**
* 将以base64的图片url数据转换为Blob文件格式
* @param urlData 用url方式表示的base64图片
*/
function convertBase64UrlToBlob(urlData) {
var bytes = window.atob(urlData.split(',')[1]); //去掉url的头,并转换为byte
//处理异常,将ascii码小于0的转换为大于0
var ab = new ArrayBuffer(bytes.length);
var ia = new Uint8Array(ab);
for(var i = 0; i < bytes.length; i++) {
ia[i] = bytes.charCodeAt(i);
}
return new Blob([ab], {
type: 'image/png'
});