当前位置: 首页 > news >正文

为什么axios会有params和data两个参数

不知道大家有没有过这种感觉,突然一个问题百思不得其解,然后突然有一天就明白了。然后就感觉这个问题原来这么简单,本来想记录下来,但是又感觉这么简单的问题记录下来没啥意义。但是回过头来想一想,这个问题之前其实困扰了你很长时间。感觉还是记录一下比较好,万一哪一天突然对这个问题有了新的扩展呢?

先来回顾一下axios的基本使用,怎么发送一个请求:

发送get请求

// 发送的链接就是 https://www.baidu.com?a=1
axios.get('https://www.baidu.com', { params: { a: 1 } })// 或者这样
axios({method: "get",url: 'https://www.baidu.com',params: { a: 1 }
})// 如果发送一个带请求头的就是这样
axios.get('https://www.baidu.com', { params: { a: 1 }, headers: { token: "123" } })// 或者这样
axios({method: "get",url: 'https://www.baidu.com',params: { a: 1 },headers: { token: "111" }
})

发送post请求

axios.post('https://www.baidu.com', { a: 1 })// 或者这样
axios({method: "post",url: 'https://www.baidu.com',data: { a: 1 }
})// 如果发送一个带请求头的就是这样
axios.post('https://www.baidu.com', { a: 1 }, { headers: { token: "123" } })// 或者这样
axios({method: "post",url: 'https://www.baidu.com',data: { a: 1 },headers: { token: "111" }
})

这里我们可以发现

axios.get可以传递两个参数 url其他参数
axios.post可以传递三个参数 url请求发出去的参数其他参数

好像不方便记忆,一会传2个,一会传3个的。所以一般情况下,即使是对项目封装网络请求,我也会使用axios()去封装,而不是使用axios.getaxios.post

那么使用axios(),get请求时如果给请求传一些参数,那么可以使用params,例如:

axios({method: "get",url: 'https://www.baidu.com',params: { a: 1 }
})

而使用post的时候需要使用data,例如:

axios({method: "post",url: 'https://www.baidu.com',data: { a: 1 }
})

好奇挂啊,为什么不能使用同一个参数呢?其实paramsdata有各自的使用意义。

params是拼接在url后面的参数
data是请求体里面的参数

例如发送post的时候

axios({method: "post",url: 'https://www.baidu.com',data: { a: 1 },params: { a: 2 }
})

上面例子a=1会放在url后面拼接,而a=2会在请求体中。所以paramsdata其实是各司其职的。

那么再来看一下,如果像使用axios.post,我既想在url后面拼接参数,又想在请求体里面有参数,该怎么写呢?

axios.post('https://www.baidu.com', { a: 1 }, { params: { a: 1 }, headers: { token: "123" } })

所以还是感觉直接调用axios好用

http://www.lryc.cn/news/209728.html

相关文章:

  • Vite+Vue3项目全局引入scss文件
  • android10.0(Q) MTK 6765 user版本打开root权限
  • 软考 系统架构设计师系列知识点之设计模式(9)
  • LeetCode二分查找
  • 米软科技客户单病种上报量云南省第一
  • SpringCore完整学习教程5,入门级别
  • 1024 云上见 · 上云挑战(ChatGPT搭建)
  • Linux内核代码中常用的数据结构
  • 自动驾驶,从“宠儿”走进“淘汰赛”
  • Tensorflow2 中模型训练标签顺序和预测结果标签顺序不一致问题解决办法
  • uniapp 在 Android Studio 模拟器中运行项目
  • 淘宝API接口获取商品信息,订单管理,库存管理,数据分析
  • Azure - 机器学习企业级服务概述与介绍
  • Linux docker 安装 部署
  • selenium+python web自动化测试框架项目实战实例教程
  • 软考高级系统架构设计师系列之:案例分析典型试题七
  • 【算法|动态规划No30】leetcode5. 最长回文子串
  • 计算机视觉 激光雷达结合无监督学习进行物体检测的工作原理
  • kubectl资源管理命令-陈述式
  • Android-宝宝相册(第四次作业)
  • Android应用:实现网络加载商品数据【OKHttp、Glide、Gson】
  • 增强常见问题解答搜索引擎:在 Elasticsearch 中利用 KNN 的力量
  • 常见网络攻击及防御方法总结(XSS、SQL注入、CSRF攻击)
  • python爬虫request和BeautifulSoup使用
  • 记录--vue3实现excel文件预览和打印
  • 消息队列中间件面试笔记总结RabbitMQ,Kafka,RocketMQ
  • pycharm远程连接Linux服务器
  • Android应用开发(38)全屏显示隐藏状态栏和导航栏
  • 日本IT Week秋季展丨美格智能以技术创新共建美好数字生活
  • centos7 install postgres-15