郭卫东 发表于 2024-8-5 07:32:29

axios 转达json axios发送json数据

前端向配景发送的请求数据有:JSON字符串和form表单两种格式。一样平常情况下可以两种格式都OK,但在某些情况下就需要根据情况来举行选择。
1.首先来看一下两种数据格式在请求中的体现形式:
JSON字符串:

https://i-blog.csdnimg.cn/blog_migrate/e7ccce1663b0eba62e5681881b36b1b6.png

Form Data:

https://i-blog.csdnimg.cn/blog_migrate/95adb90a2463ce1583f8542345258776.png

看起来区别不是很大,都可以通过键值来获取相应的值。
再来看一组更复杂的数据:
JSON字符串:

https://i-blog.csdnimg.cn/blog_migrate/59d0019f1e79df4d1b0f36bfa7013de3.png

Form Data:

https://i-blog.csdnimg.cn/blog_migrate/ccaf3e893c87c59811ac591e93127357.png

这个时候的区别就体现出来了,Form表单会将数组按照索引举行拆分,所以这个时候配景不能直接通过dataArr来获取这个数组数据,只能根据索引来逐一获取。当数组length不确定时,处理处罚起来就比较麻烦了,所以这种情况传参使用JSON字符串的形式比较合适。详细要如何选择这两种数据格式,后面再先容
2.两种传参的实现:
2.1 JSON字符串:

https://i-blog.csdnimg.cn/blog_migrate/73fde813ee39d6ba75be2dd0954fd019.png

request是axios创建的实例,axios的封装见 axios的封装 附上代码:
request({
      url:"/api/post",
      method:"post",
      data:JSON.stringify({
      mess:'hello',
      dataArr:[{name:'test',vlaue:},{name:"match",vlaue:}]
      }),
      headers:{
      'content-type':"application/json"
      }
    }).then(res=>{
      console.log('响应成功',res)
    },reject=>{
      console.log('响应失败',reject)
    })

[*]1.
[*]2.
[*]3.
[*]4.
[*]5.
[*]6.
[*]7.
[*]8.
[*]9.
[*]10.
[*]11.
[*]12.
[*]13.
[*]14.
[*]15.
2.2 Form Data:
FormData的实现方法有许多种:
1.form表单,如今根本不消了,这里不再先容。
2.引入qs,通过QS.stringify

https://i-blog.csdnimg.cn/blog_migrate/2178068eb3cc484ef9d86b7d610b1392.png


https://i-blog.csdnimg.cn/blog_migrate/720785a71f7dfef7925cc43b887ed08f.png

3. new FormData(),通过append方法添加参数

https://i-blog.csdnimg.cn/blog_migrate/d68ecbc1cfe97ae5f39fa867d5002cbb.png


https://i-blog.csdnimg.cn/blog_migrate/9ec165036d4a1bf82d816dd62b6c3e28.png

这里还用到了文件上传,file.file就是同upload组件传入的文件
3.如何选择:
1.当参数的数据结构比较复杂时,如不仅仅是简单的键值对,而是对象或数组嵌套结构时,发起使用JSON字符串传参
2.涉及文件上传时发起使用FormData
3.其他一样平常情况两者皆可
4.涉及文件上传同时又需要携带比较复杂的数据:Form Data+JSON.stringify

https://i-blog.csdnimg.cn/blog_migrate/f0c8395b56f12ba312615be9918c79fd.png

或:

https://i-blog.csdnimg.cn/blog_migrate/f4b8ce137523a3f1c27fddb80d709f3a.png
原文:axios 转达json axios发送json数据_deanyuancn的技术博客_51CTO博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: axios 转达json axios发送json数据