form data 和 request payload的区别

今天上线出现了一个bug  明明控制台打印可以打印出参数  但是接口请求却没有  

原来项目用的全是post请求  并且全是form data   而form data不能传空数组

参考:https://segmentfault.com/a/1190000018774494

后端取不到值?

无论何种形式传递,后端解析表单信息的时候,会考虑Content-Type。如果是JSON字符串的话,后端解析payload的内容时候,肯定要去解析JSON啦。如果是key1=value1&key2=value2的形式,则需要去分割字符串。

当然这些事情一般后端使用的框架会去处理,但是框架给后端提供取值接口有可能是不同的,所以前端的小伙伴在处理请求问题时,一定要跟后端小伙伴商量好,是用JSON还是FormData哈。

Content-Type的差异

1.传统的ajax请求时候,Content-Type默认为"文本"类型。

2.传统的form提交的时候,Content-Type默认为"Form"类型。

3.axios传递字符串的时候,Content-Type默认为"Form"类型。

4.axios传递对象的时候,Content-Type默认为"JSON"类型

Content-Type的值,Form与非Form时,payload的区别。

1.都只支持字符串类型(以上探究的几种情况)

2.Form需要传递的格式为key1=value1&key2=value2,类似GET请求的QueryString格式

3.非Form一般为JSON.stringify(formDataObject)形式

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容