vue官方早就推荐axios,抛弃vue-resource。

axios常规用法

安装: npm install axios

栗子:

1.GET 请求

// 为给定 ID 的 user 创建请求
axios.get('/user?ID=12345').then(response=>{console.log(response);}).catch(function (error) {console.log(error);});
//换个姿势实现
axios.get('/user', {params: {                         //区别:  get是用params传值ID: 12345}}).then(response=>{console.log(response);}).catch(function (error) {console.log(error);});
复制代码

2.POST 请求

axios.post('/user', {                  //        post是用对象传值      firstName: 'Fred',lastName: 'Flintstone'}).then(response=>{console.log(response);}).catch(function (error) {console.log(error);});复制代码

3.执行多个并发请求

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 -API

axios(config) //传配置,建请求{config},完整的包含then和catch

// 发送 POST 请求
axios({                                            //配置好一个对象,传递进去method: 'post',url: '/user/12345',data: {0firstName: 'Fred',lastName: 'Flintstone'}
});// 发送 GET 请求(默认的方法)
axios('/user/12345');复制代码

请求方法-别名列表

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

并发

axios.all(iterable)//iterable是一个可以迭代的参数如数组等
axios.spread(callback)//callback要等到所有请求都完成才会执行

实例

var instance = axios.create({baseURL:"https://some-domain.com/api/",timeout:1000,headers: {'X-Custom-Header':'foobar'}
});复制代码

实例--全局默认配置

axios.defaults.baseURL = 'http://api.exmple.com'; axios.defaults.headers.common['Authorization'] = AUTH_TOKEN; axios.defaults.headers.post['content-Type'] = 'appliction/x-www-form-urlencoded';

实例--自定义默认配置

var instance = axios.create({ baseURL: 'https://api.example.com' }); //创建

instance.defaults.headers.common["Authorization"] = AUTH_TOKEN;//修改

响应结构

axios.get('/user/12345').then(function(response) {console.log(response.data);console.log(response.status);console.log(response.statusText);console.log(response.headers);console.log(response.config);});复制代码

拦截器----这货很有用

在请求或响应被 thencatch 处理前拦截它们。

// 添加请求拦截器
axios.interceptors.request.use(function (config) {// 在发送请求之前做些什么return config;}, function (error) {// 对请求错误做些什么return Promise.reject(error);});
// 添加响应拦截器
axios.interceptors.response.use(function (response) {// 对响应数据做点什么return response;}, function (error) {// 对响应错误做点什么return Promise.reject(error);});复制代码

移除拦截器

var myInterceptor = axios.interceptors.request.use(function () {/*...*/});
axios.interceptors.request.eject(myInterceptor);复制代码

---------------------------------来势汹汹的分割线------------------------------------------

整理些有用的实现例子

栗子1:封装到vue原型上使用

import axios from 'axios'Vue.prototype.$http= axios复制代码
 methods: {show() {this.$http({method: 'get',url: '/class',data: {name: 'liu'}})}复制代码

------------------------------------------------------------------------------------------

栗子2

import axios from 'axios'
复制代码
// 超时时间
axios.defaults.timeout = 13000;复制代码
//跨域请求,允许保存cookie
axios.defaults.withCredentials = true;复制代码
//错误提示信息
let msg='服务器被外星人拉走了';
let loadinginstace;                                //提示控件
//http请求拦截
axios.interceptors.request.use(config=>{//服务器请求中动画loadinginstace=Loading.service({fullscreen: true});//配置token后期会改//config.headers['X-token'] = getToken();         //做些配置处理return config                                     //返回配置
},err=> {                                           //请求失败处理      //打印错误loadinginstace.close();Message.error({message: '加载超时'});return Promise.reject(err);
});//http 响应拦截
axios.interceptors.response.use(data=>{loadinginstace.close();return data
},err=>{                                            //响应失败处理loadinginstace.close();Message.error({message:msg});return Promise.reject(err);
});export default axios复制代码

一个老铁二次封装的例子:

https://segmentfault.com/a/1190000012332982

vue--配套axios用法相关推荐

  1. vue中axios如何实现token验证

    title: vue中axios如何实现token验证 date: 2018-02-08 17:50:07 tags: [axios,vue] 继上篇实现Auth认证之后,然后每个跳转页面都会在后端验 ...

  2. 解决在vue中axios请求超时的问题

    解决在vue中axios请求超时的问题 参考文章: (1)解决在vue中axios请求超时的问题 (2)https://www.cnblogs.com/zhouyangla/p/8757149.htm ...

  3. axios队列 vue_(十三 )Vue 封装axios(四种请求)及相关介绍

    Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...

  4. 你可能不清楚的 Vue Router 深度用法(二)

    此为 Vue Router 深度用法的第二篇,主要讲述动态路由匹配用法.第一篇的链接在此: https://segmentfault.com/a/11... 动态路由匹配是用于把某种模式匹配到的所有路 ...

  5. ASP.NET Core微服务(四)——【静态vue使用axios解析接口】

    ASP.NET Core微服务(二)--[ASP.NET Core Swagger配置]: 环境:win10专业版+vs2019+sqlserver2014/2019+vsCode+在线资源 boot ...

  6. Vue使用axios,设置axios请求格式为form-data

    Vue使用axios,设置axios请求格式为form-data 这个老生常谈了,还是先记录一遍,方面后面自己查. !!! 设置form-data请求格式直接翻到后面看. 1. 安装axios 在项目 ...

  7. vue使用axios并存数据到state

    npm安装 npm install axios --save main.js导入 // 引入axios,并加到原型链中 import Axios from 'axios' import QS from ...

  8. vue 使用axios

    axios 基于http客户端的promise,面向浏览器和nodejs 特点 从浏览器中创建 XMLHttpRequests 从 node.js 创建 http 请求 支持 Promise API ...

  9. vue应用axios.get请求的代码格式(2种)- 代码篇

    vue应用axios.get请求的代码格式(2种)- 代码篇 代码: axios.get(this.serverPath+'/supermarket/fruits/options?id='+id, { ...

  10. vue中axios设置表单头_VUE项目axios请求头更改Content-Type操作

    我就废话不多说了,大家还是直接看代码吧~ const httpServer = (opts, data) => { const token = localStorage.getItem('tok ...

最新文章

  1. 伸展树算法c语言,数据结构伸展树介绍及C语言的实现方法
  2. 机器学习算法库scikit-learn的安装
  3. “AI独角兽”半年巨亏52亿 旷视科技的IPO之路会好走吗?
  4. 论文笔记:CycleGAN
  5. #让人物运动_篮球人物之黄云龙,淡泊名利的他是篮球运动员中的楷模,你可记得...
  6. 20145240《信息安全系统设计基础》第十四周学习总结
  7. 傻瓜神经网络入门指南
  8. tcga数据下载_手把手教你用R下载TCGA数据:CGDSR包
  9. 回溯算法与八皇后问题
  10. 面向服务架构十大技术与基础理论
  11. 计算机语言入门vfp,VFP基础教程第二章VFP语言基础3
  12. 23种设计模式——适配器模式
  13. HFSS初探日志(二)微波滤波器设计实例:微带发夹线滤波器
  14. 怎么查询逆水寒服务器角色信息,逆水寒服务器状态
  15. 服务器背板作用,硬盘和服务器背板
  16. 鹅厂同学:7 月开始不再进行薪酬调整?
  17. 【云和恩墨】高能分布式架构 zData | 敏捷提速某保险公司核心系统全速运行
  18. DDoS 攻击与防护(一):如何识别 DDoS 攻击?DDoS 防护 ADS 服务有哪些?
  19. 服务器如何设置防火墙?
  20. 选择合适的iOS培训机构有技巧

热门文章

  1. Hadoop阅读笔记(一)——强大的MapReduce
  2. Linux时间不准确的问题![转]
  3. CSS3下的渐变文字效果实现
  4. 题解 P2610 【[ZJOI2012]旅游】
  5. 一步一步教您用websocket+nodeJS搭建简易聊天室(4)
  6. 华为P10的内存门和闪存门的检测方法
  7. Metasploit是一款开源的安全漏洞检测工具,
  8. FPGA跨时钟域异步时钟设计的几种同步策略
  9. WCF BasicHttpBinding 安全解析(1)BasicHttpBinding基本配置
  10. 利用装饰器实现mock和api的局部分离切换