关于使用axios的一些心得技巧分享

发布时间 - 2026-01-11 02:08:20    点击率:

本文主要跟大家介绍了关于使用axios的一些心得技巧,分享出来供大家参考学习,下面来一起看看详细的介绍:

一、带cookie请求

axios默认是请求的时候不会带上cookie的,需要通过设置withCredentials: true来解决。

二、使post请求发送的是formdata格式数据

首先必须设置请求头

//可以通过这种方式给axios设置的默认请求头
axios.defaults.headers = {
"Content-Type": "application/x-www-form-urlencoded"
}

其次再发送之前需要处理一下数据

// 发送请求前处理request的数据
axios.defaults.transformRequest = [function (data) {
// Do whatever you want to transform the data
let newData = ''
for (let k in data) {
newData += encodeURIComponent(k) + '=' + encodeURIComponent(data[k]) + '&'
}
return newData
}]

三、拦截器

你可以截取请求或响应在被 then 或者 catch 处理之前。

举个小例子:发ajax请求的时候需要有一个loading动画,而在请求回来之后需要把loading动画关掉,就可以使用这个拦截器来实现。

//添加请求拦截器
axios.interceptors.request.use(config => {
 //在发送请求之前做某事,比如说 设置loading动画显示
 return config
}, error => {
 //请求错误时做些事
 return Promise.reject(error)
})

//添加响应拦截器
axios.interceptors.response.use(response => {
 //对响应数据做些事,比如说把loading动画关掉
 return response
}, error => {
 //请求错误时做些事
 return Promise.reject(error)
})

//如果不想要这个拦截器也简单,可以删除拦截器
var myInterceptor = axios.interceptors.request.use(function () {/*...*/})
axios.interceptors.request.eject(myInterceptor)

ps:另外附上自己在项目中使用axios的方式

一般会将所有的ajax请求放在一个模块中,新建一个http.js

//http.js
//设置请求baseURL
axios.defaults.baseURL = '/api'
//设置默认请求头
axios.defaults.headers = {
"Content-Type": "application/x-www-form-urlencoded"
}
// 发送请求前处理request的数据
axios.defaults.transformRequest = [function (data) {
let newData = ''
for (let k in data) {
 newData += encodeURIComponent(k) + '=' + encodeURIComponent(data[k]) + '&'
}
return newData
}]
// 带cookie请求
axios.defaults.withCredentials = true

//get请求
function get(url) {
 return body => axios.get(url, { params: body })
 }
//post请求
function post(url) {
return body => axios.post(url, body)
}

//导出使用 
export const login = get('/login')

假设配合vue使用

// 引入login模块
import { login } from 'http'
export default {
 methods:{
 //配合 async/await使用效果更佳
  async get() {
   try {
    let res = await login({ account: 'admin' })
    console.log(res)
   } 
   catch (e) {
    console.log(e)
   }
  }
 }
}

再另外有些人可能喜欢把axios挂载到Vue的原型上,从而在子组件内可以直接访问的到,做法如下:

Vue.prototype.$http = axios //其他页面在使用axios的时候直接 this.$http就可以了

除非页面足够简单,不然我个人不太喜欢这种做法。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如有疑问大家可以留言交流,谢谢大家对的支持。


# axios的使用  # axios在vue中的使用  # axios使用  # axios基本入门用法教程  # axios学习教程全攻略  # 详解vue axios中文文档  # vue axios用法教程详解  # GitHub上77.9K的Axios项目有哪些值得借鉴的地方详析  # 拦截器  # 做些  # 而在  # 就可以  # 的是  # 放在  # 你可以  # 不太  # 如有  # 可以通过  # 可以直接  # 有些人  # 这篇文章  # 谢谢大家  # 会将  # 来实现  # 使用这个  # 再发  # 更佳  # 举个 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 东莞市网站制作公司有哪些,东莞找工作用什么网站好?  C#如何调用原生C++ COM对象详解  Laravel如何发送系统通知_Laravel Notifications实现多渠道消息通知  Win11搜索不到蓝牙耳机怎么办 Win11蓝牙驱动更新修复【详解】  Laravel Facade的原理是什么_深入理解Laravel门面及其工作机制  如何使用 jQuery 正确渲染 Instagram 风格的标签列表  javascript事件捕获机制【深入分析IE和DOM中的事件模型】  如何基于云服务器快速搭建个人网站?  武汉网站设计制作公司,武汉有哪些比较大的同城网站或论坛,就是里面都是武汉人的?  Laravel Livewire是什么_使用Laravel Livewire构建动态前端界面  独立制作一个网站多少钱,建立网站需要花多少钱?  JavaScript数据类型有哪些_如何准确判断一个变量的类型  装修招标网站设计制作流程,装修招标流程?  JS经典正则表达式笔试题汇总  Win10如何卸载预装Edge扩展_Win10卸载Edge扩展教程【方法】  如何在 React 中条件性地遍历数组并渲染元素  高端建站如何打造兼具美学与转化的品牌官网?  如何做网站制作流程,*游戏网站怎么搭建?  电商网站制作价格怎么算,网上拍卖流程以及规则?  Laravel怎么实现观察者模式Observer_Laravel模型事件监听与解耦开发【指南】  Laravel怎么实现验证码功能_Laravel集成验证码库防止机器人注册  Windows驱动无法加载错误解决方法_驱动签名验证失败处理步骤  如何在阿里云虚拟服务器快速搭建网站?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  厦门模型网站设计制作公司,厦门航空飞机模型掉色怎么办?  微信小程序 scroll-view组件实现列表页实例代码  如何在云虚拟主机上快速搭建个人网站?  公司网站制作需要多少钱,找人做公司网站需要多少钱?  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?  Laravel模型关联查询教程_Laravel Eloquent一对多关联写法  如何快速生成ASP一键建站模板并优化安全性?  Laravel Eloquent关联是什么_Laravel模型一对一与一对多关系精讲  ,怎么在广州志愿者网站注册?  教你用AI将一段旋律扩展成一首完整的曲子  Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】  Laravel Admin后台管理框架推荐_Laravel快速开发后台工具  如何用wdcp快速搭建高效网站?  详解一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)  PythonWeb开发入门教程_Flask快速构建Web应用  laravel怎么为API路由添加签名中间件保护_laravel API路由签名中间件保护方法  什么是javascript作用域_全局和局部作用域有什么区别?  如何快速搭建高效简练网站?  千库网官网入口推荐 千库网设计创意平台入口  简历在线制作网站免费版,如何创建个人简历?  Android实现代码画虚线边框背景效果  EditPlus中的正则表达式实战(6)  香港服务器网站卡顿?如何解决网络延迟与负载问题?  如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?  大连 网站制作,大连天途有线官网?