全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

本文主要跟大家介绍了关于使用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项目有哪些值得借鉴的地方详析  # 拦截器  # 做些  # 而在  # 就可以  # 的是  # 放在  # 你可以  # 不太  # 如有  # 可以通过  # 可以直接  # 有些人  # 这篇文章  # 谢谢大家  # 会将  # 来实现  # 使用这个  # 再发  # 更佳  # 举个 


相关文章: 网站制作软件有哪些,制图软件有哪些?  建站之星后台密码遗忘?如何快速找回?  香港服务器如何优化才能显著提升网站加载速度?  5种Android数据存储方式汇总  Python多线程使用规范_线程安全解析【教程】  如何访问已购建站主机并解决登录问题?  如何在阿里云高效完成企业建站全流程?  建站之星如何助力企业快速打造五合一网站?  如何零基础在云服务器搭建WordPress站点?  如何在建站之星网店版论坛获取技术支持?  C++时间戳转换成日期时间的步骤和示例代码  武清网站制作公司,天津武清个人营业执照注销查询系统网站?  ,想在网上投简历,哪几个网站比较好?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  制作ppt免费网站有哪些,有哪些比较好的ppt模板下载网站?  ppt在线制作免费网站推荐,有什么下载免费的ppt模板网站?  如何在云服务器上快速搭建个人网站?  正规网站制作公司有哪些,目前国内哪家网页网站制作设计公司比较专业靠谱?口碑好?  济南网站建设制作公司,室内设计网站一般都有哪些功能?  如何在七牛云存储上搭建网站并设置自定义域名?  建站之星2.7模板:企业网站建设与h5定制设计专题  微信小程序制作网站有哪些,微信小程序需要做网站吗?  寿县云建站:智能SEO优化与多行业模板快速上线指南  阿里云网站制作公司,阿里云快速搭建网站好用吗?  建站之星备案是否影响网站上线时间?  详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)  黑客入侵网站服务器的常见手法有哪些?  如何在阿里云虚拟服务器快速搭建网站?  网站制作的软件有哪些,制作微信公众号除了秀米还有哪些比较好用的平台?  购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?  Bpmn 2.0的XML文件怎么画流程图  韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐  如何自定义建站之星模板颜色并下载新样式?  昆明网站制作哪家好,昆明公租房申请网上登录入口?  单页制作网站有哪些,朋友给我发了一个单页网站,我应该怎么修改才能把他变成自己的呢,请求高手指点迷津?  Java解压缩zip - 解压缩多个文件或文件夹实例  网站视频怎么制作,哪个网站可以免费收看好莱坞经典大片?  建站上传速度慢?如何优化加速网站加载效率?  官网自助建站平台指南:在线制作、快速建站与模板选择全解析  零服务器AI建站解决方案:快速部署与云端平台低成本实践  如何在Golang中指定模块版本_使用go.mod控制版本号  巅云智能建站系统:可视化拖拽+多端适配+免费模板一键生成  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  音乐网站服务器如何优化API响应速度?  图册素材网站设计制作软件,图册的导出方式有几种?  定制建站方案优化指南:企业官网开发与建站费用解析  如何配置WinSCP新建站点的密钥验证步骤?  番禺网站制作公司哪家值得合作,番禺图书馆新馆开放了吗?  javascript中对象的定义、使用以及对象和原型链操作小结 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。