使用axios首先要下载axios模块包

npm install axios --save

其次需要在使用的文件中引入

import axios from 'axios'

一、调用axios常见两种方法(此处使用easy-mock模拟数据接口):

//方法1
axios({
method: 'post',
url:'http://easy-mock.com/mock/596077559adc231f357bcdfb/axios/test-post-axios'
})
.then((response)=>{
console.log(response.data)
})
.catch((error)=>{
console.log(error)
})
//方法2
axios.post('http://easy-mock.com/mock/596077559adc231f357bcdfb/axios/test-post-axios',{
miaov:"课堂" //发送的数据
})
.then((response)=>{
console.log(response.data)
})
.catch((error)=>{
console.log(error)
})

注意:

方法一中向后台发送数据时:

//get方式发送数据
axios.get('https://easy-mock.com/mock/5a883cccbf160328124e8204/example/mock', {
params: {
pomelo: 'tt',
test: 'test'
}
}).then((response) => {
console.log(response)
}).catch((error) => {
console.log(error)
})
//post方式发送数据
axios.post('https://easy-mock.com/mock/5a883cccbf160328124e8204/example/mock', {
pomelo: 'tt',
test: 'test'
}).then((response) => {
console.log(response)
}).catch((error) => {
console.log(error)
})

二、自定义请求实例

//常见请求实例配置项
{
baseURL: ‘’, //基础URL
timeout:1000, //请求延时时间
headers {'X-Requested-With': 'XMLHttpRequest'}, //自定义请求头内容
responseType: 'json', //请求数据类型包括 'arraybuffer', 'blob', 'document', 'json', 'text', 'stream'
params: {}, //无论请求为何种类型,在params中的属性都会以key=value的格式在urlzhong拼接
transformRequest: [function(data){
return data
}], // 只适用于 POST,PUT,PATCH,transformRequest` 允许在向服务器发送前,修改请求数据。后面数组中的函数必须返回一个字符串,或 ArrayBuffer,或 Stream
transformResponse: [function(data){
return data
}], //transformResponse` 在传递给 then/catch 前,允许修改响应数据
validateStatus: function(status){
  return status < 400 //状态码小于400时均为成功(返回true)
}, //validateStatus` 定义对于给定的HTTP 响应状态码是 resolve 或 reject promise 。如果 `validateStatus` 返回 `true` (或者设置为 `null` 或 `undefined`),promise 将被 resolve; 否则,promise 将被 rejecte
cancelToken //取消请求,下文详细说明
}

使用自定义请求实例时需要先创建对象

var HTTP = axios.create({})   // {}中放入上文中的配置项

使用transformRequest将数据格式改为key=value的格式

import queryString from 'queryString'  //转换格式包,无需下载

  var HTTP = axios.create({
baseURL:'http://easy-mock.com/mock/596077559adc231f357bcdfb/axios/',
timeout: 1000,
responseType:'json',
headers:{
'custome-header': 'miaov',
'content-type':'application/x-www-form-urlencoded' //转换为key=value的格式必须增加content-type
},
transformRequest:[function(data){
console.log(data)
data.age = 30; //发送之前增加的属性
return queryString.stringify(data); //利用对应方法转换格式
}]
})

axios并发请求,通过axios。all()方法,需在两个请求都完成后才能被成功调用

export default {
name: 'hello',
created(){ function http1(){
return HTTP.get("test-axios")
} function http2(){
return HTTP.post("test-post-axios")
}
//注意此时常使用axios.spread()方法接收多个响应数据
axios.all([http1(),http2()]).then(axios.spread((res1,res2)=>{
console.log(res1)
console.log(res2)
}))
.catch((error) =>{
if (axios.isCancel(error)) {
console.log(error.message);
}else{
console.log(error)
}
}) }
}

axios拦截器

(1)拦截请求(在发送请求之前做某事)

axios.interceptors.request.use(function(config){
//在发送请求之前做某事
console.log("拦截")
console.log(config) //单次请求的配置信息对象
return config; //只有return config后,才能成功发送请求
},function(error){
//请求错误时做些事
return Promise.reject(error);
});

(2)拦截响应

HTTP.interceptors.response.use(function(data){
console.log("response")
console.log(data) //响应数据
return data; //只有return data后才能完成响应
})

当大量使用axios时,可以将axios作为vue的插件全局使用

首先需要安装axios,vue-axios

npm install axios vue-axios --save

将其作为插件

Vue.use(VueAxios, Axios)   //注意顺序与大小写

当在其他任意组件中使用时可使用以下方式:

this.$http[method]()

Vue中axios的使用技巧配置项详解的更多相关文章

  1. vue中 localStorage的使用方法(详解)

    vue中实现本地储存的方法:localStorage,在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题(cooki ...

  2. Vue中ESlint配置文件eslintrc.js文件详解

    最近在跟着视频敲项目时,代码提示出现很多奇奇怪怪的错误提示,百度了一下是eslintrc.js文件没有配置相关命令,ESlint的语法检测真的令人抓狂,现在总结一下这些命令的解释,方便以后查阅. 默认 ...

  3. vue中$refs的用法及作用详解

    一般来讲,获取DOM元素,需要使用document.querySelector('#input1')方法去获取dom节点,然后再获取input1的值. 但是使用了ref绑定之后,我们就不需要再获取do ...

  4. vue中v-model动态生成的实例详解

    每一行有一个input和一个select,其中行数是根据服务器返回的json数据动态变化的.那么问题来了,我们要怎样动态生成v-model? <template> <div> ...

  5. 聊聊 Vue 中 axios 的封装

    聊聊 Vue 中 axios 的封装 axios 是 Vue 官方推荐的一个 HTTP 库,用 axios 官方简介来介绍它,就是: Axios 是一个基于 promise 的 HTTP 库,可以用在 ...

  6. vue中Axios请求豆瓣API数据并展示到Swipe中

    vue中Axios请求豆瓣API数据并展示到Swipe中 1.首先是安装Axios: 安装方法cnpm install axios --save 等待npm安装完毕: 2.在main.js中引入axi ...

  7. vue中axios的深入使用

    如上所示一条简单的请求数据,用到了vue中axios,promise,qs等等 这里我将vue中用到的axios进行了封装方便日后使用  先对工具类进行封装utils/axios.js: // 引入模 ...

  8. Vue中axios的封装和api接口的统一管理

    更新的是我csdn上的文章,需要的话可以看下,互相学习点击去我的csdn vue中axios的封装 在vue项目和后端交互获取数据时,通常使用axios库,官方文档:https://www.npmjs ...

  9. vue中axios使用二:axios以post,get,jsonp的方式请求后台数据

    本文为博主原创,转载请注明出处 axios在上一篇中讲过:vue中axios使用一:axios做拦截器,axios是请求后台资源的模块,用来请求后台资源. axios本身是支持get,post请求后台 ...

随机推荐

  1. redis分布式锁的几种实现方式,以及Redisson的配置和使用

    最近在开发中涉及到了多个客户端的对redis的某个key同时进行增删的问题.这里就会涉及一个问题:锁 先举例在分布式系统中不加锁会出现问题: redis中存放了某个用户的账户余额 ,例如100 (用户 ...

  2. 腾讯云+校园扶持计划是bug还是福利

    前言   上午突然收到好友的微信消息.打开一看是关于关腾讯云"云+校园扶持计划".仔细看下了意思就是用户可以花360大洋购买腾讯云服务器配置为1核2G,1M带宽的服务器3年.(腾讯 ...

  3. zTree实现更新根节点中第i个节点的名称

    zTree实现更新根节点中第i个节点的名称 1.实现源码 <!DOCTYPE html> <html> <head> <title>zTree实现基本树 ...

  4. Java中的字符串拼接

    Java中的字符串拼接 1.设计源码 /** * @Title:IndexOf.java * @Package:com.you.freemarker.model * @Description: * @ ...

  5. java中final和static

    final的意思是最终的,最后的额,不可变的,在java中也具有相似的含义. final修饰基础数据表示把该数据修饰成常量,意味着不可修改,不可变. final修饰对象的引用的时候,表示该引用不可变, ...

  6. Java中的java.math.BigInteger

    Java中的java.math.BigInteger /** * */ package com.you.model; /** * @author YouHaidong * */ public clas ...

  7. directX枚举系统设备类

    void CSysEnumDlg::DisplayFullCategorySet(void){    USES_CONVERSION;    HRESULT hr;    IEnumMoniker * ...

  8. Flex下拉框

    <?xml version="1.0" encoding="utf-8"?> <s:Application xmlns:fx="ht ...

  9. Linux之网络管理

    一.网络基础 1)ISO/OSI七层模型简介 ISO:国际标准化组织 OSI:开放系统互联模型 IOS:苹果操作系统(在计算机网络中,IOS是互联网操作系统,是思科公司为其网络设备开发的操作维护系统) ...

  10. 促进客户转化,提高客单价!酷客多小程序发布版本V1.0.9!

    商户和企业主的又一次福音!酷客多小程序新零售o2o商城系统酷爱用户,为了追求极致的用户体验,没日没夜地沉浸于新功能的开发,经过一番努力,新功能终于上线啦! 此次版本迭代,在原有功能基础上做了大幅提升, ...