axios的get和post请求,关于携带参数相关的讲解一下

在使用 Axios 发送 HTTP 请求时,GET 和 POST 请求携带参数的方式有所不同。以下是关于这两种请求方法携带参数的详细讲解:

GET 请求携带参数

对于 GET 请求,参数通常附加在 URL 之后,以查询字符串的形式传递。

  1. 直接在 URL 中拼接参数

    • 可以直接将参数以键值对的形式拼接在 URL 后面。
    • 例如:axios.get('/user?name=Kimi&age=30')
  2. 使用 params 参数

    • Axios 允许你通过 params 配置项传递一个对象,Axios 会自动将对象序列化为查询字符串并附加到 URL 上。

    • 例如:

      javascript 复制代码
      axios.get('/user', {
        params: {
          name: 'Kimi',
          age: 30
        }
      });
    • 这将生成一个带有查询参数的请求:/user?name=Kimi&age=30

  3. params 配置项

    • params 配置项还可以接受一个函数,这个函数会被调用以序列化参数。

    • 例如:

      javascript 复制代码
      axios.get('/user', {
        params: {
          name: 'Kimi',
          age: 30,
          // 使用函数来自定义参数序列化
          paramsSerializer: function(params) {
            return Qs.stringify(params, {arrayFormat: 'brackets'});
          }
        }
      });
    • 这可以用于更复杂的参数序列化需求。

POST 请求携带参数

对于 POST 请求,参数通常包含在请求体中。

  1. 直接在 data 中传递参数

    • 发送 POST 请求时,可以直接将参数作为对象传递给 data 配置项。

    • 例如:

      javascript 复制代码
      axios.post('/user', {
        name: 'Kimi',
        age: 30
      });
    • Axios 会自动将对象序列化为 JSON 字符串,并设置 Content-Type 头部为 application/json

  2. 使用 FormData

    • 如果需要发送表单数据,可以使用 FormData 对象,并将其传递给 data 配置项。

    • 例如:

      javascript 复制代码
      let formData = new FormData();
      formData.append('name', 'Kimi');
      formData.append('age', '30');
      axios.post('/user', formData);
    • 这将使用 multipart/form-data 编码发送表单数据。

  3. 自定义 Content-Type

    • 如果需要发送其他类型的数据(如 application/x-www-form-urlencoded),可以自定义 transformRequest 配置项来修改请求数据的格式。

    • 例如:

      javascript 复制代码
      axios.post('/user', {
        name: 'Kimi',
        age: 30
      }, {
        headers: {
          'Content-Type': 'application/x-www-form-urlencoded'
        },
        transformRequest: [
          function (data) {
            let ret = '';
            for (let it in data) {
              ret += encodeURIComponent(it) + '=' + encodeURIComponent(data[it]) + '&';
            }
            return ret;
          }
        ]
      });
    • 这将把 JSON 对象转换为 application/x-www-form-urlencoded 格式的字符串。

总结来说,GET 请求通常将参数附加在 URL 上,而 POST 请求将参数放在请求体中。Axios 提供了灵活的配置项来满足不同的参数传递需求。

相关推荐
Bs_MoneyMagnet8 小时前
基于springboot+vue的生态果园采摘预约系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·毕业设计·计算机毕业设计
the局外人13 小时前
掌控自己的 K 线数据:TradingView 本地部署与数据源接入
前端·vue.js·websocket
梦诺13 小时前
vue3 keepAlive+记录滚动条
前端·javascript·vue.js
Bs_MoneyMagnet14 小时前
基于springboot+vue的会议室预约管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
Bs_MoneyMagnet14 小时前
基于springboot+vue的茶铺管理系统的设计与实现 源码+文档
java·vue.js·spring boot·后端·spring·毕业设计·计算机毕业设计
志尊宝16 小时前
Vue3 零基础每日笔记(018):按键与鼠标修饰符——回车搜索、Ctrl+S 保存这样写
javascript·vue.js·笔记
志尊宝17 小时前
Vue3 零基础每日笔记(021):class 与 style 动态绑定——对象、数组、三元表达式写法汇总
前端·vue.js·笔记·前端框架·html5
夏幻灵17 小时前
Vue / React 列表渲染中的 key:为什么没有 key,Checkbox 可能“对号跑错”?
前端·javascript·vue.js
Bs_MoneyMagnet18 小时前
基于springboot+vue的旅游行程分享与推荐小程序的设计与实现 源码+文档
java·vue.js·spring boot·后端·微信小程序·毕业设计·计算机毕业设计
岁岁种桃花儿18 小时前
Vue组件第六篇:Vue单文件组件
开发语言·前端·javascript·vue.js