前后端交互时,数据的四种编码格式

axios请求前为什么要转格式

之前写过,用axios发送请求,后端接收不到。但是同样的数据用jquery的ajax就能接收到。查了查只能在发送前转一下格式,像下图这样

但是为什么要转格式,原来问题在这里

headers: {
  'Content-Type': 'application/x-www-form-urlencoded',
  'http_access_token': accessToken || ''
},

也就是说,我的content-type标注的编码格式是form表单提交格式,所以要转换成form表单提交的格式,否则后台是接收不到的。那究竟有几个编码格式呢

四种编码格式

  • application/x-www-form-urlencoded:标准表单提交格式
  • multipart/form-data:上传文件格式
  • application/json:json字符串格式
  • text/xml:xml格式

application/x-www-form-urlencoded:标准表单提交格式

这个格式会把数据转成name1=value1&name2=value2这样的格式,在调试器中会显示form data,然后是对应的键值

如果是提交一个数组,会变成这种格式

application/json:json字符串格式

这种就直接传json字符串,因为原生js支持JSON.stringfy,服务端语言也都有对json的解析,所以这种方法其实更适合前后端分离开发,但是涉及到有文件上传的时候,还是得老老实实的 用multipart/form-data

随机浏览