一.  axios参数的传递方式

    首先我们要知道  参数传递一般有两种,一种是 使用 params, 另一种是 data的方式,有很多的时候我们看到的前端代码是这样的。

   1. get请求:

axios({
method: 'GET',
url: 'xxxxx',
params: params,
})
或者
axios({
method: 'GET',
url: '/xxx?id=' + xxx,
})

2. post请求

axios({
method: 'POST',
url: '/xxxxx',
data: params,
})
或者
axios({
method: 'POST',
url: '/xxxxx',
params: params,
})

 3. params 的形式的传参 参数会被拼接到url上面(params 是查询参数,拼在 URL 问号后面的)   如下图: 

      

  4. data形式传参, axios会自动处理设置Content-Type不需要手动设置

    

      (1) 比如发送一个下面的请求, 会发现请求头的content-type是application/json;charset=UTF-8

axios({
url: '/login',
method: 'post',
data: {email: 'xxxx', password: 123123}
})

(2) 比如发送一个上传文件的请求formdata, 会发现请求头的content-type是multipart/form-data

let formData = new FormData()
formData.append('file', file)
axios({
url: '/login',
method: 'post',
data: formData
})

二 . 查看axios源码, 对比 data和params两种参数处理方法

      1. 处理data

  在axios文件中 的 core/dispatchRequest.js 中:

          

       在 axios 的 default.js 中,有一个函数专门转换 data 参数的 :

            

注意: 上面只是举例 data 传递参数的一种情况哈!其实data 也有在地址栏 上 拼接的情况,或者 是文件上传的等情况。太多了,这里 只是讲清楚使用的方式。

2.  处理 params

         在axios文件中 的 adapt/ xhr.js 中,我们可以看到 :

              

  buildUrl 一些关键代码如下 :

              

参考链接 :https://blog.csdn.net/qq_41499782/article/details/118916901

https://segmentfault.com/q/1010000018679505?utm_source=sf-similar-question

https://segmentfault.com/q/1010000040731240

最新文章

  1. ASP.NET MVC5+EF6+EasyUI 后台管理系统(48)-工作流设计-起草新申请
  2. MVC4与JSON交互的知识总结
  3. Quartz2D之绘制一个简单的机器猫
  4. U3D中IOS平台泛型方法尽少使用
  5. 【freemaker】之FreeMakerUtil工具类
  6. c# 邮件发送代码分享
  7. 《第一行代码》学习笔记21-Git
  8. ECharts 使用实例
  9. C++_基础_运算符重载2
  10. codeforces 622E. Ants in Leaves
  11. Debain/Ubuntu/Deepin 下使用 ss
  12. java高精度学习笔记
  13. 0429---每日习题 菲薄纳西数列 正则ip匹配
  14. JSONObject.fromObject--JSON与对象的转换
  15. ajax提交form表单问题
  16. 单元测试-代码覆盖率 EclEmma
  17. Linux批量解压文件
  18. 03: itchat发送微信消息
  19. 20155211实验二 Java面向对象程序设计
  20. php 修改图片分辨率

热门文章

  1. 浅谈倍增法求解LCA
  2. Mac Book安装Windows发烫的问题
  3. Chrome自带功能实现网页截图
  4. 二、shell 脚本条件测试
  5. 轻松上手Fluentd,结合 Rainbond 插件市场,日志收集更快捷
  6. Reading configuration from: /usr/local/src/zookeeper/apache-zookeeper-3.6.3-bin/bin/../conf/zoo.cfg
  7. electron+vue 环境搭建
  8. 时间模块之datatime模块、os模块、sys模块、json模块、json模块实操
  9. 数据质量管理工具预研——Griffin VS Deequ VS Great expectations VS Qualitis
  10. App Inventor拓展项目——钢琴游戏