前端学习记录笔记

关于form-data

2019-03-26  本文已影响0人  VictoriaZsj

有关request post请求格式中的multipart/form-data格式。

***** 传递给后端的数据转换为整型*****

在后端与前端约定好application/json格式传递数据时,因为后台是go强类型语言,在定义api接口时,某些字段要求是整型类型,但是对于前端来说输入框或者从url中的search取到的参数都是字符串,不得不进行前端类型转换。

后端同学还支持另一种的前后端数据交互请求内容格式为Content-Type: multipart/form-data,用来指定请求内容的数据编码格式。通过该格式后端取到前端传递的数据就是数字了(即使前端传递的是字符串),而不像json格式获取的是字符串。这样,就不需要额外对前端获取的数据进行特殊转换了

form-data格式一般是用来进行文件上传的。使用表单上传文件时,必须让表单的 enctype 等于 multipart/form-data,因为该值默认值为application/x-www-form-urlencoded

手动来实现一个转换数据函数,https://www.cnblogs.com/wonyun/p/7966967.html



function objectToFormData (obj, form, namespace)

{

const fd = form || new FormData();

let formKey;

for(var property in obj){

        if(obj.hasOwnProperty(property))

        {

            let key = Array.isArray(obj) ? '[]' : `[${property}]`;

            if(namespace) { formKey = namespace + key; }

            else { formKey = property; }

            // if the property is an object, but not a File, use recursivity.

            if(typeof obj[property] === 'object' && !(obj[property] instanceof File))

            { objectToFormData(obj[property], fd, formKey); }

            else { // if it's a string or a File object fd.append(formKey, obj[property]); }

        }

}

return fd;

}
上一篇下一篇

猜你喜欢

热点阅读