• 前后端数据传递之form-data


    前情


    最近在项目开发中,跟服务端连调发现接口一直报错,服务端一直提示是数据没有传,而通过浏览器控制台发现数据是有传的。


    服务通过postman自测是OK的。经过和服务端一起定位发现服务端只接收以form-data格式传递的数据,而我传递的是JSON对象。

    Why?


    平时前后端接口数据连调很少有走form-data形式的,form-data一般用来做文件上传才会用到,如果要以form-data传递数据,则需要通过借助FormData对象

    解决方案


    1. 跟服务端协商,服务端是否可修改成支持直接传递JSON对象(推荐)
    2. 也可前端直接传递form-data数据给服务端即可,关键代码如下:
    let param = new FormData();
    param.append('chatGid', '******');
    param.append('chatItemGid', '******');
    // 注意事项
    // 对于传递文件对象,是需要三个参数的,第一个为字段,第二个是二进制文件本体,第三个是文件名
    param.append('file', 文件二进对象, 文件名);
    

    问题关联


    前后端数据连调有几种常见的数据传递格式,对于不同格式,需要设置不能的Content-Type

    1. text/plain :纯文本格式
    2. application/json: JSON数据格式
    3. application/x-www-form-urlencoded :默认的encType,form表单数据被编码为key/value格式发送到服务器(表单默认的提交数据的格式)
    4. multipart/form-data : 需要在表单中进行文件上传时使用
    好好学习!天天向上!
  • 相关阅读:
    PHP、JAVA、C#、Object-C 通用的DES加密
    xtraScrollableControl 滚动条随鼠标滚动
    C#让TopMost窗体弹出并置顶层但不获取当前输入焦点的终极办法
    C#获取“所有用户桌面”的路径
    C#如何获取快捷方式指向的目标文件
    10
    09
    新浪微博中tableview中头部信息
    ASIHTTPRequest类库简介和使用说明
    IOS常用设计模式之委托模式
  • 原文地址:https://www.cnblogs.com/xwwin/p/14915109.html
Copyright © 2020-2023  润新知