axios在vue中的使用

文章目录

  • 一、axios是什么?
  • 二、使用步骤
    • 2.1 下载
    • 2.2 引入
    • 2.3 使用
      • Get请求
      • Post请求
      • Forms
  • 三、封装


一、axios是什么?

Axios 是一个基于 promise 网络请求库,作用于node.js 和浏览器中。 它是 isomorphic 的(即同一套代码可以运行在浏览器和node.js中)。在服务端它使用原生 node.js http 模块, 而在客户端 (浏览端) 则使用 XMLHttpRequests。

二、使用步骤

2.1 下载

npm install  axios -S

2.2 引入

import axios from 'axios'

2.3 使用

Get请求

import axios from 'axios'
// 向给定ID的用户发起请求
axios.get('/user?ID=12345').then(function (response) {// 处理成功情况console.log(response);}).catch(function (error) {// 处理错误情况console.log(error);}).finally(function () {// 总是会执行});// 上述请求也可以按以下方式完成(可选)
axios.get('/user', {params: {ID: 12345}}).then(function (response) {console.log(response);}).catch(function (error) {console.log(error);}).finally(function () {// 总是会执行});  // 支持async/await用法
async function getUser() {try {const response = await axios.get('/user?ID=12345');console.log(response);} catch (error) {console.error(error);}
}

Post请求

发起一POST请求

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

发起多个并发请求

function getUserAccount() {return axios.get('/user/12345');
}function getUserPermissions() {return axios.get('/user/12345/permissions');
}const [acct, perm] = await Promise.all([getUserAccount(), getUserPermissions()]);// ORPromise.all([getUserAccount(), getUserPermissions()]).then(function ([acct, perm]) {// ...});

将HTML Form 转换JSON进行请求

const {data} = await axios.post('/user', document.querySelector('#my-form'), {headers: {'Content-Type': 'application/json'}
})

Forms

Multipart (multipart/form-data)

const {data} = await axios.post('https://httpbin.org/post', {firstName: 'Fred',lastName: 'Flintstone',orders: [1, 2, 3],photo: document.querySelector('#fileInput').files}, {headers: {'Content-Type': 'multipart/form-data'}}
)

URL encoded form (application/x-www-form-urlencoded)

const {data} = await axios.post('https://httpbin.org/post', {firstName: 'Fred',lastName: 'Flintstone',orders: [1, 2, 3]}, {headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})

三、封装

在src下创建utils目录,在该目录下创建文件 request.js

import axios from "axios";
import router from '../router/index'
// 1、创建axios对象
const service = axios.create({baseURL: 'http://localhost:9090/drsm',
});
//2、请求拦截器 
service.interceptors.request.use(config => {//在headers中加入认证信息。// if(token){//        config.headers['Token'] = token//    }return config
}, error => {Promise.reject(error);
})//响应拦截器
service.interceptors.response.use((response) => {//console.log(response);const {data} = response;if (data.code === 200 || data.code === 201) {//回传的数据return data;} else {return Promise.reject(new Error(data.message))}},error => {let msg;//console.log(error);if (error.response) {switch (error.response.status) {case 500:msg = "500-服务器发生错误,请及时联系管理员"break;case 404:msg = "404-你访问的页面不存在"break;case 401:msg = "401-请先登录系统,再完成操作"break;case 403:msg = "403-额...没有权限访问"breakdefault:msg = "555-发生错误,请及时联系管理员"break;}//登录界面发生错误时不跳转到错误页,if(error.config.url=='/login'){return Promise.reject(new Error(msg))}router.push({path: '/error',query: {msg: msg}});} else {msg = "连接不到目标服务器"}return Promise.reject(new Error(msg))}
)export default service;

在utils下创建api目录,接着创建文件 course.js

import qs from 'qs'
import service from '@/utils/request'export function loginReq(name, pwd) {const data = {username: name,password: pwd};return service.post('/login',qs.stringify(data));
}export function addUserReq(user){return service.post('/addUser',qs.stringify(user));
}export function userExist(username){let url = '/userExist/'+username;return service.get(url);
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/49735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【高可用】利用AOP实现数据库读写分离

最近项目中需要做【高可用】数据库读写分离相关的需求,特地整理了下关于读写分离的相关知识。项目中采用4台数据库:1个master,2个slave,1个readOnly,其中master数据库会自动定时同步到readOnly节点。可以通过中间件(Sh…

FastAPI(六十九)实战开发《在线课程学习系统》接口开发--修改密码

源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 之前我们分享了FastAPI(六十八)实战开发《在线课程学习系统》接口开发--用户 个人信息接口开发。这次我们去分享实战开发《在线…

Redis集群的主从复制原理-全量复制和增量复制-哨兵机制

Redis集群的主从复制原理-全量复制和增量复制-哨兵机制 作用 数据备份 这一点直观,因为现在有很多节点,每个节点都保存了原始数据的备份. 读写分离 这一点主要是当发生读写的时候,读数据的操作大部分都会进入到从节点,而写数据的操作都会进入到主节点&…

ESP32CAM人工智能教学15

ESP32CAM人工智能教学15 Flask服务器TCP连接 小智利用Flask在计算机中创建一个虚拟的网页服务器服务器,让ESP32Cam通过WiFi连接,把摄像头拍摄到的图片发送到电脑中,并在电脑中保存成图片文件。 Flask是用Python编写的网页服务程序WebServer。…

react18高阶组件

高阶组件的本质上就是函数,接受一个组件作为参数,然后返回一个组件。解决了组件之间如何横向抽离公共逻辑的问题。类组件之间常使用,函数组件中也可以使用,但更多的时候使用自定义hooks。 高阶组件命名一般采用with开头&#xff…

逻辑回归推导

逻辑回归既可以看作是回归算法,也可以看做是分类算法。通常作为分类算法使用,只可以解决二分类问题。 在上述平面中,每个颜色代表一个类别,即有4个类别 将红色的做为一个类别,其他三个类别都统称为其他类别&#xff0…

现代化电商企业在行业竞争中关于数据采集API接口的应用分析||经验分享

及时准确:电商API接口能为品牌提供实时数据,这意味着企业可以即时获取最新的商品价格信息,避免因为信息延迟导致的决策失误。相较于手动采集,接口数据一般更为准确可靠。 效率提升:接口自动化采集大大提高了数据获取效…

ViewPager实现原理分析

ViewPager 是 Android 中用于展示多页面内容的控件,通常被用来实现滑动切换不同页面的功能,比如常见的应用启动引导页、广告轮播图或者多标签页的布局。ViewPager 是一个非常重要的控件,它提供了灵活的滑动效果和页面管理机制。 下面是基于 …

Photoshop(PS) 抠图简单教程

目录 快速选择 魔棒 钢笔 橡皮擦 蒙版 通道 小结 可以发现,ps逐渐成为必备基础的办公软件。本文让ps新手轻松学会抠图。 快速选择 在抠图之前,先了解下选区的概念。ps中大多数的抠图操作都是基于选区的,先选区再Ctrl J提取选区。而快…

【深度】2024AI大模型算力芯片产业深度分析

人工智能算力基础设施成为我国数字经济高质量发展的重要战略部署,具有重大发展意义。 1)算力普适普惠化是大趋势,相关服务生态逐步构建。“东数西算”工程的实施,带动数据、算力跨域流动,实现产业跃升和区域平衡发展。…

谷粒商城实战笔记-46-商品服务-API-三级分类-配置网关路由与路径重写

文章目录 一,准备工作1,新增一级菜单2,新增二级菜单 二,前端树形界面开发1,开发分类展示组件 三,远程调用接口获取商品分类数据1,远程调用2,路由配置 错误记录 本节的主要内容&#…

【算法/训练】:动态规划

一、路径类 1. 字母收集 思路: 1、预处理 对输入的字符矩阵我们按照要求将其转换为数字分数,由于只能往下和往右走,因此走到(i,j)的位置要就是从(i - 1, j)往下走&#x…

MySQL 约束 (constraint)

文章目录 约束(constraint)列级约束和表级约束给约束起名字(constraint)非空约束(no null)检查约束(check)唯一性约束 (unique)主键约束 (primary key)主键分类单一主键复合主键主键自增 (auto_increment) 外键约束外什…

C# 中用 TopShelf服务创建和延迟运行

TopShelf 是一个开源项目,它简化了在 .NET 环境中创建和管理 Windows 服务的流程。以下是一个简单的示例,展示了如何使用 TopShelf 创建一个服务,并在服务启动后延迟执行某些操作。 首先,确保你已经安装了 TopShelf。你可以通过 …

C++树形结构(总)

目录 一.基础: 1.概念: 2.定义: Ⅰ.树的相关基础术语: Ⅱ.树的层次: 3.树的性质: 二.存储思路: 1.结构体存储: 2.数组存储: 三.树的遍历模板: 四.…

学习笔记-系统框图简化求传递函数公式例题

简化系统结构图求系统传递函数例题 基础知识回顾 第四讲 控制系统的方框图 (zhihu.com) 「自控原理」2.3 方框图的绘制及化简_方框图化简-CSDN博客 自动控制原理笔记-结构图及其等效变换_结构图等效变换-CSDN博客 例子一 「自控原理」2.3 方框图的绘制及化简_方框图化简-CS…

7-20FPGA调试日志

1. 在代码里面定义的ILA的变量名称与波形抓取界面的不一致 问题描述 ::: 2. 直接从其他的播放声音的平台放音乐没问题,但是从AU里面生成的2kHz的正弦波放不出声音 演示视频链接 好像和ILA的例化信号有关,例化ILA信号的驱动时钟信号频率没有内部的其他…

MySQL字段设置的varchar长度小于数据长度自动截取丢弃超出的长度而不是报错?

MySQL字段设置的varchar长度小于数据长度自动截取丢弃超出的长度而不是报错? 事情是这样的,我们一个订单表存放了商品的快照信息其中快照信息存储的是json格式商品信息,当查看订单是报错了,发现我们后端服务查询到订单的快照信息…

dockerfile部署wordpress

1.将容器直接提交成镜像 [rootlocalhost ~]# docker commit 8ecc7f6b9c12 nginx:1.1 sha256:9a2bb94ba6d8d952527df616febf3fbc8f842b3b9e28b7011b50c743cd7b233b [rootlocalhost ~]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE nginx …

C语言 数据存储之结构类型 万字讲解#数据类型详细介绍 #整型在内存中的存储 #大小端字节序 #浮点型在内存的存储解析

文章目录 目录 前言 一、数据类型详细介绍 类型的意义: 1、类型的基本归类 a.整型家族 b.浮点型家族 c.构造类型 数组类型 结构体类型 struct 枚举类型 enum 联合类型 union d.指针类型 e.空类型 二、整型在内存中的存储 三、大小端字节序 什么是…