Vue之axios基础使用

axios 简介

axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征:

  1. 从浏览器中创建 XMLHttpRequest
  2. 从 node.js 发出 http 请求
  3. 支持 Promise API
  4. 拦截请求和响应
  5. 转换请求和响应数据
  6. 取消请求
  7. 自动转换JSON数据
  8. 客户端支持防止 CSRF/XSRF

安装

npm安装

$ npm install axios --save

通过cdn引入

发送GET请求

// created:vue生命周期中的钩子函数,在这个时间点,data中的数据已经注入到响应式系统中
created(){
    axios.get('api/getData.php',{       // 还可以直接把参数拼接在url后边
        params:{
            title:'眼镜'
        }
    }).then(function(res){
        this.goodsList = res.data;
    }).catch(function (error) {
        console.log(error);
    });
}
response.data才是真正返回的后台数据

发送POST请求

axios.post('/user', {
    firstName: 'Fred',
    lastName: 'Flintstone'
}).then(function (response) {
    console.log(response);
}).catch(function (error) {
    console.log(error);
});

// 注意: 如果发送请求时,发现传递的参数是对象,那么可用如下方式传参数
// var params = new URLSearchParams();
// params.append('title', '眼镜');
// params.append('id',1);
// axios.post('/user', params)
//      .then(function(res){})
//      .catch(function(error){});
response.data才是真正返回的后台数据

执行多个并发请求

//获得用户信息的请求
function getUserAccount() {
     return axios.get('/user/12345');
}

//获取用户许可证的请求
function getUserPermissions() {
     return axios.get('/user/12345/permissions');
}

axios.all( [ getUserAccount(),  getUserPermissions() ] )
    .then(axios.spread(function (acct, perms) {
        //两个请求现已完成
    })
);

请求拦截器和响应拦截器

//请求拦截器
axios.interceptors.request.use(
  function (config) {
      // 在发送请求之前做些什么
      return config;
  },
  function (error) {
      // 对请求错误做些什么
      return Promise.reject(error);
  }
);

//响应拦截器
axios.interceptors.response.use(
  function (config) {
      // 对响应数据做点什么
      return config;
  },
  function (error) {
      // 对响应错误做点什么
      return Promise.reject(error);
  }
);

Vue中axios在发送POST请求时,参数的处理

1. 下载安装第三方模块 qs -> npm install qs –save-dev

2. 处理方式

// 第一种: 直接在发送的时候,对数据进行qs.stringify处理
// 缺点: 如果项目大,有大量的请求需要发送,那么一个一个加会很麻烦
axios.post("/checkLogin.php", qs.stringify({
  name, pwd
}));

// 第二种: 使用axios.create创建一个新的axios实例,统一对数据进行处理, 同时也要借助qs模块
const Axios = axios.create({
  baseURL: '/api',
  transformRequest: [function (data) {
    const d = qs.stringify(data)
    return d;
  }]
})

Axios.post("/checkLogin.php", {
  name, pwd
});

Original: https://www.cnblogs.com/dekevin/p/12347879.html
Author: dekevin
Title: Vue之axios基础使用

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/551571/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • [转帖]我国2022年上半年集成电路进口额逾1.35万亿元 超过原油

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    技术杂谈 2023年5月30日
    0129
  • Linux用户和用户组

    Linux用户和用户组 1.添加新的用户 (用户ID从500开始,0-99系统管理级别、100-499系统预留) useradd 选项 用户名 参数说明 选项: -c commen…

    技术杂谈 2023年7月11日
    086
  • UML

    posted on2022-06-13 17:28 莫水千流 阅读(18 ) 评论() 编辑 Original: https://www.cnblogs.com/zhoug2020…

    技术杂谈 2023年6月1日
    0114
  • 为什么你应该停止依赖Jenkins的插件?

    根据ActiveState的CI/CD 2020状态调查结果,Jenkins是市场上最常用的CI/CD工具。作为市场上最早的工作运行者之一,它有足够的时间来获得普及,并且是推进构建…

    技术杂谈 2023年6月1日
    0154
  • String和List相互转换

    1,String转List csharp;gutter:true; //常见的为逗号分隔 String str = "a,b,c"; List list1 = …

    技术杂谈 2023年5月31日
    091
  • Java函数式编程

    Java函数式编程 初探函数式编程【JavaScript篇】_哔哩哔哩_bilibili 三更草堂Up主。不会Lambda表达式、函数式编程?你确定能看懂公司代码?-java8函数…

    技术杂谈 2023年7月11日
    0110
  • 永久激活Windows10系统的三种方法(亲测有效)

    越来越多人选择升级安装Windows10系统,为了让更好的使用win10系统,一般会选择激活系统之后才能正常使用,不然很多功能就会被限制。那么如何永久激活Windows10系统?就…

    技术杂谈 2023年5月31日
    0122
  • 写在进队之后

    CCF NOI 还没有发今年的题面,我只好把补题计划向后推迟。虽然我记得每道题目具体在讲什么,也不是不能补题,但我打算做些更有意义的。 从发榜到现在已经过去了 28 个小时,我整个…

    技术杂谈 2023年6月21日
    0103
  • Open Physics

    1、开放物理计划。 开放物理计划,英文Open Physics。是AMD公司为自己的3A平台打造的物理模拟计算平台,以OpenCL为基础,由CPU+GPU联合计算完成。所谓&#82…

    技术杂谈 2023年5月31日
    0108
  • 「免费开源」基于Vue和Quasar的前端SPA项目crudapi后台管理系统实战之动态表单(五)

    基于Vue和Quasar的前端SPA项目实战之动态表单(五) 回顾 通过上一篇文章基于Vue和Quasar的前端SPA项目实战之序列号(四)的介绍,我们已经完成了元数据中序列号的增…

    技术杂谈 2023年7月24日
    0103
  • Mysql 事务(标贝科技)

    @ 事务 InnoDB对ACID的支持 隔离级别 + 不同隔离级别下读读取数据可能出现的情况 不可重复读和幻读区别 redo log (共享表空间) redo log block …

    技术杂谈 2023年7月25日
    0123
  • gin路由

    gin路由 gin路由 // svrGIN project main.go package main //cxg 2022-7-29 import ( "svrGIN/d…

    技术杂谈 2023年5月30日
    088
  • SQL练习题

    以下所有操作在查询管理器中手工书写sql语句完成 1.2、在这个数据库中创建一个名为[学生表(student)]的表,由[学号]、[姓名]、[专业]、[班级]字段组成。[学号] 字…

    技术杂谈 2023年7月25日
    085
  • Vivado_8位流水灯

    Design 代码中的计数器设置是因为我的开发板的时钟是100MHZ的,也就是1秒完成了100_000_000次时钟信号,所以我设置计数器为100_000_000次。 也就是说,我…

    技术杂谈 2023年7月11日
    0109
  • 快速排序?

    <span>function <span>quickSort (arr) {<br> <span>if (arr.length &l…

    技术杂谈 2023年5月31日
    0110
  • 七夕专属限定:1 分钟 Serverless 极速抽盲盒

    体验简介 在阿里云云起实验中,通过Serverless架构部署一个抽奖系统,当前,Serverless在移动应用、游戏等场景已经实现规模化应用,Serverless 技术可以更好的…

    技术杂谈 2023年7月11日
    086
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球