axios请求---进阶用法

上一篇文章里面大致记录了一下axios的基础用法
这一篇文章主要记录axios的进阶用法:实例、配置、拦截器、取消请求

实例

let instance = axios.create({
  baseURL: 'http://localhost:9000/api',
  timeout: 1000,
  //url: '/contactList'
  //method: 'get,post,put,patch,delete',
  headers: {
    token: ''
  }, //请求头
  //params:{}, //拼接在url 上的请求参数
  //data: {}, //放在请求体的请求参数
})

instance.get('/contactList',{
  params: {
    id: 1
  }
}).then(res=>{
  console.log(res)
}).catch(err=>{
  console.log(res)
})

配置

axios的配置参数有哪些:

baseURL,timeout,url,method,headers,params,data,withCredentials....

axios全局配置
axios.defaults.timeout = 1000;
axios.defaults.baseURL = 'http://localhost:9000/api';
axios实例配置
let instance = axios.create();
instance.defaults.timeout = 3000
axios请求配置
instance.get('/contactList',{
  timeout: 5000
}).then(res=>{
  console.log(res)
}).catch(err=>{
  console.log(res)
})
优先级别:请求配置>实例配置>全局配置(即最后的超时时间是5000)

拦截器

拦截器:在请求或响应被处理前拦截它们。分为请求拦截器、响应拦截器
请求拦截器:

axios.interceptors.request.use(config=>{
  //在发送请求前做些什么
  //config.headers.token = '', //需要登录拦截的请求
  return config
}, err=>{
  //在请求错误的时候做些什么
  return Promise.reject(err)
})

响应拦截器

axios.interceptors.response.use(config=>{
  //请求成功对响应数据做处理
  return res
}, err=>{
  //响应错误做些什么
  return Promise.reject(err)
})

比如在移动端开发时:在发送请求前需要加一个遮罩层,在请求错误或响应结束的时候取消遮罩层、以及需要登录拦截的请求接口,需要在请求之前,给请求头配置上相关信息,这些操作都可以加在拦截器里面。

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,887评论 1 32
  • axios 基于 Promise 的 HTTP 请求客户端,可同时在浏览器和 node.js 中使用 功能特性 在...
    Yanghc阅读 9,043评论 0 7
  • 简介 Axios 是一个基于 promise 的 HTTP 库,可以用在浏览器和 node.js 中。本文先从浏览...
    microkof阅读 13,513评论 0 4
  • Axios是近几年非常火的HTTP请求库,官网上介绍Axios 是一个基于 promise 的 HTTP 库,可以...
    milletmi阅读 8,875评论 0 9
  • 一、安装 1、 利用npm安装npm install axios --save 2、 利用bower安装bower...
    kiddings阅读 5,776评论 0 3

友情链接更多精彩内容