位置: IT常识 - 正文

Vue3 中 axios 的安装及使用(vue3+antd)

编辑:rootadmin
Vue3 中 axios 的安装及使用 目录前言:一、什么是 axios ?二、Axios 的配置项三、Axios 的请求方式四、自定义创建实例五、Axios 请求错误处理六、Axios 解决跨域问题七、Axios 请求案例随机笑话大全总结:前言:

推荐整理分享Vue3 中 axios 的安装及使用(vue3+antd),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue3+antd,vue3.0 antd,vue安装使用axios,vue3 ant,vue3+antd,vue anxios,vue anxios,vue3.0使用axios,内容如对您有帮助,希望把文章链接给更多的朋友!

在编写vue里的项目时,必须要用和后台进行合作,我们始终绕不开对 axios 的使用 ,vue3 中 axios 进行了一些重要的更新,在这里分享给大家

一、什么是 axios ?

Axios 是一个基于 promise 网络请求库,作用于 node.js 和浏览器中 Axios 在服务端它使用原生 node.jshttp 模块,而在客户端(浏览端)则使用 XMLHttpRequests Axios 可以拦截请求和响应、转换请求和响应数据、取消请求、自动转换 JSON 数据 Axios 安装方式:npm install axios

二、Axios 的配置项

这些是创建请求时最常用的配置选项;详细的配置项请前往 Axios 官网

提示:

只有 url 是必需的;如果没有指定 method,则请求将默认使用 GET 方法

{ url: '/user', // 请求的服务器地址 URL method: 'GET', // 请求方式,默认值 GET baseURL: 'https://some-domain.com/api/', // 如果 url 不是绝对地址,则会发送请求时在 url 前方加上 baseURL headers: {'X-Requested-With': 'XMLHttpRequest'}, // 自定义请求头 params: { ID: 12345 }, // 与请求一起发送的 URL 参数 data: { firstName: 'Fred' }, // 作为请求体被发送的数据,仅适用 'PUT', 'POST', 'DELETE 和 'PATCH' 请求方法 timeout: 1000, // 请求超时的毫秒数,如果请求时间超过 `timeout` 的值,则请求会被中断,默认值是 `0` (永不超时), responseType: 'json', // 期望服务器返回的数据类型,选项包括: 'arraybuffer', 'document', 'json', 'text', 'stream', 浏览器专属:'blob',默认值 json // 允许在向服务器发送前,修改请求数据,它只能用于 'PUT', 'POST' 和 'PATCH' 这几个请求方法 transformRequest: [function (data, headers) { return data; // 对发送的 data 进行任意转换处理 }], // 在传递给 then/catch 前,允许修改响应数据 transformResponse: [function (data) { return data; // 对接收的 data 进行任意转换处理 }]}三、Axios 的请求方式Vue3 中 axios 的安装及使用(vue3+antd)

为了方便起见,已经为所有支持的请求方法提供了别名

axios.request(config)axios.get(url[, config])axios.delete(url[, config])axios.head(url[, config])axios.options(url[, config])axios.post(url[, data[, config]])axios.put(url[, data[, config]])axios.patch(url[, data[, config]])注意:

在使用别名方法时,url、method、data 这些属性都不必在config中指定

// 发送一个 GET 请求axios( '/example-url/……', // 请求地址 { /* 请求体中的参数 */ }, { method: 'GET', // 请求方式,可省略不写 // …… 其他配置 …… })// 发送一个 POST 请求axios( '/example-url/……', // 请求地址 { /* 请求体中的参数 */ }, { method: 'POST ', // 请求方式 // …… 其他配置 …… })四、自定义创建实例

axios.create([config]):调用create函数传入自定义配置,来创建自定义axios实例

// src/request/axiosInstance .jsimport axios from 'axios'const request = axios.create({ baseURL: 'https://some-domain.com/api/', timeout: 1000, headers: {'X-Custom-Header': 'foobar'}})export default request使用自定义实例发送请求:// 方法一:import request from '@/request/axiosInstance.js'request({ method: 'POST', // 请求方式 url: '/example-url/……', // 请求地址 // …… 其他配置 ……})// 方法二:import request from '@/request/axiosInstance.js'request('/example-url/……', // 请求地址 { method: 'POST', // 请求方式 // …… 其他配置 …… })// 方法三:import request from '@/request/axiosInstance.js'request.post( '/example-url/……', // 请求地址 { /* 请求体中的参数 */ }, {/* …… 其他配置 …… */})五、Axios 请求错误处理

发送请求后,使用 .catch(error => {}) 来处理此次请求异常,请求成功发出且服务器也响应了状态码,但状态代码超出了 2xx 的范围

axios({ method: 'GET', // 请求方式 url: '/example-url/……', // 请求地址}).catch(error => { console.log('请求失败!')})六、Axios 解决跨域问题跨域:指的是浏览器不能执行其他网站的脚本;它是由浏览器的同源策略造成的,是浏览器对 javascript 施加的安全限制同源策略:是指协议,域名,端口都要相同,其中有一个不同都会产生跨域浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源,如果未处理跨域访问则会在请求时控制台出现 Access-Control-Allow-Origin…… 的报错信息如何处理跨域问题,可在 vite 项目的 vite-config.js 文件中添加 proxy 代理import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'export default defineConfig({ plugins: [vue()], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } }, // 服务 server: { // 代理 proxy: { '/api': { target: 'https://v.api.aa1.cn/api', // 代理后台服务器地址 changeOrigin: true, //允许跨域 rewrite: path => path.replace(/^\/api/,'') // 将请求地址中的 /api 替换成空 } } }})七、Axios 请求案例

本次请求测试采用的是 APISpace 提供的测试 API ,当然如果你有自己的测试的 API 也可测试自己的 API

提示:

测试 APISpace 提供的接口需要登录其账号获取鉴权私钥,领取测试案例的使用次数方可测试

// 代理服务来解决跨域问题import { fileURLToPath, URL } from 'node:url'import { defineConfig } from 'vite'import vue from '@vitejs/plugin-vue'export default defineConfig({ plugins: [vue()], resolve: { alias: { '@': fileURLToPath(new URL('./src', import.meta.url)) } }, // 服务 server: { // 代理 proxy: { '/apispace': { target: 'https://eolink.o.apispace.com/', // 代理后台服务器地址 changeOrigin: true, //允许跨域 rewrite: path => path.replace(/^\/apispace/,'') // 将请求地址中的 /ok 替换成空 } } }})随机笑话大全随机笑话大全--请求方式POST请求地址https://eolink.o.apispace.com/xhdq/common/joke/getJokesByRandom请求头X-APISpace-Token鉴权私钥请求头Authorization-Type鉴权方式,值为:apikey请求头Content-Typeapplication/x-www-form-urlencoded请求body参数pageSize获取条数(最多20条)必填,类型:String返回数据格式JSON返回案例请求测试案例:// 选项式:<script>import axios from 'axios'export default { data: () => ({ count: null, // 获取条数 jokes: null, // 笑话合集 }), methods: { // 获取随机笑话 getRandomJokes() { // 发送请求 axios( '/apisapce/xhdq/common/joke/getJokesByRandom', // 请求地址(已处理跨域) { method: 'POST', // 请求方式 // 请求头 headers: { 'X-APISpace-Token': 'p6cz2g80pcplxtituz1mz3ccgkgaaxl6', 'Authorization-Type': 'apikey', 'Content-Type': 'application/x-www-form-urlencoded' }, // 请求体中的参数 data: { 'pageSize': this.count } }).then(response => { const responseData = response.data // 获取服务器响应的数据 console.log(responseData) if (responseData.statusCode === '000000') { // 请求成功 this.jokes = responseData.result } else { // 请求失败 alert(responseData.desc) } }).catch(error => { alert('服务器异常') }) } }}</script><template> 获取个数:<input type="number" v-model="count"> <button @click="getRandomJokes">获取随即笑话</button> <hr> <ul> <li v-for="j in jokes" v-html="j.content"></li> </ul></template>// 组合式:<script setup>import axios from 'axios'import { ref } from 'vue'const count = ref(null) // 获取条数const jokes = ref(null) // 笑话合集// 获取随机笑话function getRandomJokes() { // 发送请求 axios( // 请求地址(已处理跨域) '/apisapce/xhdq/common/joke/getJokesByRandom', { // 请求方式 method: 'POST', // 请求头 headers: { 'X-APISpace-Token': 'p6cz2g80pcplxtituz1mz3ccgkgaaxl6', 'Authorization-Type': 'apikey', 'Content-Type': 'application/x-www-form-urlencoded' }, // 请求体中的参数 data: { 'pageSize': count.value } }).then(response => { const responseData = response.data // 获取服务器响应的数据 console.log(responseData) if (responseData.statusCode === '000000') { // 请求成功 jokes.value = responseData.result } else { // 请求失败 alert(responseData.desc) } }).catch(error => { alert('服务器异常') })}</script><template> 获取个数:<input type="number" v-model="count"> <button @click="getRandomJokes">获取随即笑话</button> <hr> <ul> <li v-for="j in jokes" v-html="j.content"></li> </ul></template>总结:

欢迎大家加入我的社区,在社区中会不定时发布一些精选内容:https://bbs.csdn.net/forums/db95ba6b828b43ababd4ee5e41e8d251?category=10003

以上就是 Vue3 中 axios 的安装及使用,不懂得也可以在评论区里问我或私聊我询问,以后会持续发布一些新的功能,敬请关注。 我的其他文章:https://blog.csdn.net/weixin_62897746?type=blog

本文链接地址:https://www.jiuchutong.com/zhishi/298548.html 转载请保留说明!

上一篇:vue 项目的屏幕自适应方案(vue display)

下一篇:ChatGPT进阶-提示词中文版

  • win7任务管理器快捷键(win7任务管理器没有详细信息)

    win7任务管理器快捷键(win7任务管理器没有详细信息)

  • 糯米网为什么用不了微信红包(糯米网属于什么模式)

    糯米网为什么用不了微信红包(糯米网属于什么模式)

  • freebuds3丢了如何定位(freebuds3丢了一只怎么配对)

    freebuds3丢了如何定位(freebuds3丢了一只怎么配对)

  • 小米换机有什么用(小米换机有什么用,可以删吗)

    小米换机有什么用(小米换机有什么用,可以删吗)

  • 移动王卡看腾讯视频免流不(移动王卡看腾讯视频免流量吗)

    移动王卡看腾讯视频免流不(移动王卡看腾讯视频免流量吗)

  • 电脑发送消息的快捷键(电脑发送信息)

    电脑发送消息的快捷键(电脑发送信息)

  • 三星手机出现蓝屏英文要怎么处理(三星手机出现蓝线滑动)

    三星手机出现蓝屏英文要怎么处理(三星手机出现蓝线滑动)

  • 小天才手表充电一直响(小天才手表充电一直响是什么原因)

    小天才手表充电一直响(小天才手表充电一直响是什么原因)

  • oppofindx怎么关机(oppofindx怎么关机自动关机,不亮屏幕)

    oppofindx怎么关机(oppofindx怎么关机自动关机,不亮屏幕)

  • trt tl10a是什么型号(trt—tl10a)

    trt tl10a是什么型号(trt—tl10a)

  • 苹果x为什么充电到80就充不进去了(苹果x为什么充不进去电,把线拔了就充进了?)

    苹果x为什么充电到80就充不进去了(苹果x为什么充不进去电,把线拔了就充进了?)

  • ios不支持此配件怎么办(ios不支持此配件是什么意思)

    ios不支持此配件怎么办(ios不支持此配件是什么意思)

  • 苹果手机搜不到无线网络是怎么回事(苹果手机搜不到无线网怎么回事)

    苹果手机搜不到无线网络是怎么回事(苹果手机搜不到无线网怎么回事)

  • iphone6怎么设置手写(iPhone6怎么设置闹钟铃声)

    iphone6怎么设置手写(iPhone6怎么设置闹钟铃声)

  • 不同网段的ip怎么互通(不同网段的ip怎么通过交换机互通)

    不同网段的ip怎么互通(不同网段的ip怎么通过交换机互通)

  • 12306可以用微信付款吗(12306可以用微信支付)

    12306可以用微信付款吗(12306可以用微信支付)

  • 互联星空是什么业务(互联星空信息费是什么意思)

    互联星空是什么业务(互联星空信息费是什么意思)

  • 淘宝直播怎么抢红包(淘宝直播怎么抢货)

    淘宝直播怎么抢红包(淘宝直播怎么抢货)

  • 滴滴分享行程怎么取消(滴滴出行的分享行程)

    滴滴分享行程怎么取消(滴滴出行的分享行程)

  • iphonex应用与数据在哪(苹果手机的应用与数据选项在哪)

    iphonex应用与数据在哪(苹果手机的应用与数据选项在哪)

  • 手机怎么往mp3里下歌(手机怎么往mp3里存歌)

    手机怎么往mp3里下歌(手机怎么往mp3里存歌)

  • 小米手机4g断流怎么解决(小米手机断流问题)

    小米手机4g断流怎么解决(小米手机断流问题)

  • 苹果11多少寸(苹果11多少寸的屏幕)

    苹果11多少寸(苹果11多少寸的屏幕)

  • 电脑上不去游戏是怎么回事?怎么才能正常玩游戏?(电脑游戏没法玩怎么办)

    电脑上不去游戏是怎么回事?怎么才能正常玩游戏?(电脑游戏没法玩怎么办)

  • java中的一维数组(java一维数组从小到大排序)

    java中的一维数组(java一维数组从小到大排序)

  • 税务局代开发票还要纳税吗
  • 汇算清缴补交所得税怎么做凭证
  • 实际发放股票股利是什么意思
  • 公司收到分红怎么交税
  • 递延税款负债在资产负债表哪个科目
  • 不开发票的入账怎么办?
  • 企业收到政府补助资金怎么做账
  • 为什么出现补交税
  • 专票未认证是什么意思
  • 工程实际成本核算例题
  • 研发费用加计扣除新税收政策2023
  • 法院判罚利息怎么算
  • 股东入股资本公司的条件
  • 航天信息的服务费
  • 企业交补充医疗保险
  • 一般纳税人开技术服务发票
  • 稳岗补贴计入哪个科目
  • 物流辅助服务需要办许可证吗
  • 中药税率什么时候变为9
  • 收购发票税率是什么意思
  • 增值税专用发票和普通发票的区别
  • 信用减值损失借贷方向增减
  • 发票有问题找谁
  • 固定资产一次计入成本费用
  • 电脑自动更新系统怎么关闭
  • 联想Lenovo ThinkPad X13 Gen1
  • 连续亏损的公司还要去吗
  • 奖金扣税标准税率表
  • 招待客户住宿费可以抵扣进项税吗合理吗
  • 运输费用会计科目
  • vben admin框架怎么实现上传文件时拿到文件参数
  • 如果退货卖家拒绝会把货退回来么
  • 分包方可以简易计税吗
  • 债券投资账务处理例题
  • php简单实例
  • php数组的类型有哪些
  • 加计扣除减免政策
  • vue生成二维码分享
  • 毕业证原件掉了可以报考社工证吗
  • 预缴土地增值税的税率
  • 前端bs是什么
  • 为什么说网络安全靠人民
  • 前端按钮跳转界面
  • configure命令
  • 其他综合收益在资产负债表中如何填列
  • 水利建设基金的计费方式
  • 研发费用加计扣除2022政策
  • 认缴制和实缴制的时间
  • 公司福利费用会计分录
  • 增值税为什么不在利润表里体现
  • 一般计税增值税预缴税款怎么算
  • 已经认证尚未抵扣的发票
  • 工业企业的会计核算程序
  • sqlserver重复数据
  • 交强险还要交车船税?
  • 计提工会经费如何划入工会专户
  • 固定资产开普票还是专票
  • 长期待摊费用怎么记账
  • 库存商品的成本计算
  • 组策略禁止打开文件对话框输入路径
  • iTunesHelper.exe是什么进程?iTunesHelper.exe系统错误怎么解决?
  • 苹果系统如何访问u盘
  • 通过防火墙可以保证窃听到的信息毫无价值
  • win8.1系统安装教程
  • 打开本地搜索
  • winxp升级win7教程图文
  • PureVoice.exe - PureVoice是什么进程 有什么用
  • 如何延长mac待机时间
  • find按照文件大小查找
  • preorder遍历
  • android开发工程师案例教程源码
  • linux vim编辑命令显示行号
  • kui血条插件设置
  • 新版unity
  • python实现mysql的单引号字符串过滤方法
  • js的模块化可以怎么做
  • linux的gunzip命令
  • jQuery progressbar通过Ajax请求实现后台进度实时功能
  • jquery技巧
  • 电子税务局登录方式
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设