zoukankan      html  css  js  c++  java
  • Vue axios 使用记录

    axios.defaults.timeout = 5000;                        //响应时间
    axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded;charset=UTF-8';        //配置请求头
    axios.defaults.baseURL = 'http://192.168.0.191:8089/erp/';   //配置接口地址
    // axios.defaults.baseURL = 'http://192.168.0.158:5000/erp';   //配置接口地址
    
    let requestLoading = function(){
      if($('.loading').length === 0){
        $(document.body).append(`<div class="loading"> <span class="loading-text"></span></div>`);
      }
    };
    
    //添加请求拦截器
    axios.interceptors.request.use((config) => {
      // console.log(config)
      if(config.url!=='/updatetoken'){
        //请求loading界面。
        requestLoading();
      }
      //在发送请求之前做某件事
      if(config.url !== '/login'){
        config.headers['Authorization'] = `${localStorage.getItem('token_type')} ${localStorage.getItem('access_token')}`
      }
      if(config.method === 'post'){
        config.headers['Accept'] = 'application/json';
        config.headers['Content-Type'] = 'application/json';
      }
      // console.log(config)
      return config;
    },(error) =>{
      $('.loading').remove();
      //console.log('错误的传参')
      // console.log(error.response)
      // console.log(error.message)
      // console.log(error.config)
      // return Promise.reject(error);
      let err = '';
      if (error.response) {
        err = error.response;
      } else {
        err = {response:{data:{detail:'网络异常!'}}};
      }
    
      return Promise.reject(err);
    });
    
    //返回状态判断(添加响应拦截器)
    axios.interceptors.response.use((res) =>{
      $('.loading').remove();
      //对响应数据做些事
      if(!res.data.success){
        return Promise.resolve(res);
      }
      return res;
    }, (error) => {
      $('.loading').remove();
      // console.log(error.response)
      // console.log(error.message)
      // console.log(error.config)
      if (error.response) {
        return Promise.reject(error);
      } else {
        let err = {response:{data:{detail:'网络异常!'}}};
        return Promise.reject(err);
      }
    });
    
    //返回一个Promise(发送post请求)
    Vue.prototype.$fetchPost = function(url, params,type) {
      return new Promise((resolve, reject) => {
        let postPrams = {method: "post", url, data: params,};
        if(type === 'object'){
          postPrams['params'] = params;
        }
        axios(postPrams)
          .then(response => {
            resolve(response);
          })
          .catch((error) => {
            reject(error)
          })
      })
    };
    //返回一个Promise(发送put请求)
    Vue.prototype.$fetchPut = function(url, params) {
      return new Promise((resolve, reject) => {
        axios({method: "put", url, data: params,})
          .then(response => {
            resolve(response);
          })
          .catch((error) => {
            reject(error)
          })
      })
    };
    ////返回一个Promise(发送get请求)
    Vue.prototype.$fetchGet = function(url, params) {
      return new Promise((resolve, reject) => {
        axios({method: "get", url, params: params,})
          .then(response => {
            resolve(response)
          })
          .catch((error) => {
            reject(error)
          })
      })
    };
    
    //返回一个Promise(发送delete请求)
    Vue.prototype.$fetchDelete = function(url, params) {
      return new Promise((resolve, reject) => {
        axios({method: "delete", url, params: params,})
          .then(response => {
            resolve(response)
          })
          .catch((error) => {
            reject(error)
          })
      })
    };
    
    //返回一个Promise(发送axios请求)
    Vue.prototype.$fetchAxios = function(method,url,params,type) {
      return new Promise((resolve, reject) => {
        let postPrams = {method: method, url, data: params,};
        if(type === 'object'){
          postPrams['params'] = params;
          delete postPrams['data']
        }else{
          postPrams['data'] = params;
          delete postPrams['params']
        }
        axios(postPrams)
          .then(response => {
            resolve(response)
          })
          .catch((error) => {
            reject(error)
          })
      })
    };
  • 相关阅读:
    用colorWithPatternImage设置view背景色太占内存,替代方法
    快捷键
    数组里面放入随机数
    Android图像处理之Bitmap类
    android屏幕适配_
    最火的Android开源项目
    boost 编译
    QTextEdit更改单个段落/块的字体
    自定义QMenu样式
    Qimage QBuffer
  • 原文地址:https://www.cnblogs.com/xiongK/p/13029250.html
Copyright © 2011-2022 走看看