axios笔记

73 阅读1分钟
require('es6-promise').polyfill();const Base64 = require('js-base64').Base64;import axios from 'axios';import {Message} from 'element-ui';//全局设置超时时间axios.defaults.timeout = 50000;//全局设置头部信息axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';//跨域axios.defaults.withCredentials = true;//请求路由拦截axios.interceptors.request.use(function (config) {  // 一般在这个位置判断token是否存在  return config;}, function (error) {  // 对请求错误做些什么  return Promise.reject(error);});//响应拦截axios.interceptors.response.use(function (response) {  // 处理响应数据  if (response.status === 200) {    if(!response.data.success){      Message.error(response.data.message);    }    return Promise.resolve(response);  } else {    console.log(response);    return Promise.reject(response);  }}, function (error) {  // 处理响应失败  console.log("==========处理响应失败========");  console.log(error);  Message.error('系统故障,请联系管理员');  return Promise.reject(error);});export default {  //get请求  requestGet(url, params = {}) {    return new Promise((resolve, reject) => {      axios.get(url, params).then(res => {        resolve(res.data);      }).catch(error => {        reject(error);      });    });  },  //get请求不带参数  requestQuickGet(url) {    return new Promise((resolve, reject) => {      axios.get(url).then(res => {        resolve(res.data);      }).catch(error => {        reject(error);      });    });  },  //post请求  requestPost(url, params = {}) {    console.log(url);    return new Promise((resolve, reject) => {      axios.post(url, params).then(res => {        resolve(res.data);      }).catch(error => {        reject(error);      });    });  },  /**   * 文件上传   * @param url   * @param params   */  requestFilePost(url, params = {}) {    console.log(params);    return new Promise((resolve, reject) => {      let username = Base64.decode(decodeURIComponent(utils.getCookie("username")));      let config = {        headers: {          'Content-Type': 'multipart/form-data',          'token': username        }      }      axios.post(url, params, config).then(res => {        resolve(res.data);      }).catch(error => {        reject(error);      });    });  },  //post请求  requestPostForm(url, params = {}) {    return new Promise((resolve, reject) => {      axios.post(url, params, {        headers: {          'Content-Type': 'application/x-www-form-urlencoded'        }      }).then(res => {        resolve(res.data);//注意resaxios封装的对象,res.data才是服务端返回的信息      }).catch(error => {        reject(error);      });    });  },  //put请求  requestPut(url, params = {}) {    return new Promise((resolve, reject) => {      axios.put(url, params).then(res => {        resolve(res.data);      }).catch(error => {        reject(error);      });    });  },  //delete请求  requestDelete(url, params = {}) {    return new Promise((resolve, reject) => {      axios.delete(url, params).then(res => {        resolve(res.data);      }).catch(error => {        reject(error);      });    });  },  //同步get请求  async syncRequestQuickGet(url) {    return await axios.get(url);  }};