zoukankan      html  css  js  c++  java
  • axios

    安装axios

    GET

    case1

    axios.get('/user?ID=12345')
      .then(function (response) {
        // handle success
        console.log(response);
      })
      .catch(function (error) {
        // handle error
        console.log(error);
      })
      .then(function () {
        // always executed
      });

    case2

    axios.get('/user', {
        params: {
          ID: 12345
        }
      })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      })
      .then(function () {
        // always executed
      });  

    POST

    axios.post('/user', {
        firstName: 'Fred',
        lastName: 'Flintstone'
      })
      .then(function (response) {
        console.log(response);
      })
      .catch(function (error) {
        console.log(error);
      });

    API

    axios(config)

    // Send a POST request
    axios({
      method: 'post',
      url: '/user/12345',
      data: {
        firstName: 'Fred',
        lastName: 'Flintstone'
      }
    });
    // GET request for remote image
    axios({
      method:'get',
      url:'http://bit.ly/2mTM3nY',
      responseType:'stream'
    })
      .then(function (response) {
        response.data.pipe(fs.createWriteStream('ada_lovelace.jpg'))
      });

    axios(url,[config])

    // Send a GET request (default method)
    axios('/user/12345');

    axios.create(config)

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

    config

    主要  url / method / headers / params / data / timeout 

    Response

    主要  data / status (200) / statusText (ok) / headers / config / request

    Interceptors

    // Add a request interceptor
    axios.interceptors.request.use(function (config) {
        // Do something before request is sent
        return config;
      }, function (error) {
        // Do something with request error
        return Promise.reject(error);
      });
    
    // Add a response interceptor
    axios.interceptors.response.use(function (response) {
        // Do something with response data
        return response;
      }, function (error) {
        // Do something with response error
        return Promise.reject(error);
      });
    // Add a request interceptor
    axios.interceptors.request.use(function (config) {
        // Do something before request is sent
        return config;
      }, function (error) {
        // Do something with request error
        return Promise.reject(error);
      });
    
    // Add a response interceptor
    axios.interceptors.response.use(function (response) {
        // Do something with response data
        return response;
      }, function (error) {
        // Do something with response error
        return Promise.reject(error);
      });

    封装axios

    import axios from 'axios'
    
    import { tips, handleError } from './error'
    
    axios.interceptors.request.use(config => {
      // 添加Loading
      return config
    }, err => {
      console.log(err)
      return err
    })
    axios.interceptors.response.use(config => {
      // 删除Loading
      return config
    }, err => {
      console.log(err)
      return err
    })
    class HttpReuest {
      request (url, data, method = 'GET') {
        return new Promise((resolve, reject) => {
          axios({
            url,
            data,
            method,
            headers: {},
            timeout: 2000
          }).then(res => {
            const { status, data } = res
            if (status === 200) {
              if (data.code === 0) {
                resolve(data.data)
              } else {
                // 统一做错误处理
                const tip = tips[data.code] ? tips[data.code] : tips[1]
                handleError(tip)
              }
            } else {
              handleError(tips[1])
              reject(new Error())
            }
          })
            .catch(err => {
              handleError(tips[1])
              reject(err)
            })
        })
      }
    }
    
    export default HttpReuest
  • 相关阅读:
    Spring AOP + Redis 实现针对用户的接口访问频率限制
    Flutter 圆形透明 Loading 弹窗
    VUE 自定义组件的双向数据绑定 和替代钩子
    10个前端技巧
    前端中的数据库
    cors 跨域问题
    promise解决回调地狱问题
    VUE框架JS组件的封装 --Vue.extend
    HBuilderX 用夜神模拟器运行vue项目
    vue关于axios 拦截器的使用
  • 原文地址:https://www.cnblogs.com/sonwrain/p/10808190.html
Copyright © 2011-2022 走看看