axios二次封装使用

在src-utils文件夹下新建一个axios.js文件

在axios文件夹下添加一下代码:

import axios from 'axios';
import Qs from 'qs'
axios.defaults.withCredentials = false     //   false 不跨域  true 跨域
// axios.defaults.headers.common['token'] = localStorage.getItem('token');  // 设置请求头,这个不是必须的
export default function (url, params, method = 'get', type = 'json') {

  let headers = {}

  let path = '/api-a-bkf-/user-mucon'  // 后端路由层地址

  if (method === 'post') {

    if (type === 'json') {

      headers = {

        'X-Requested-With': 'XMLHttpRequest',

        'Content-Type': 'application/x-www-form-urlencodes;charset=UTF-8' 

      }

    } else {

      headers = {

        'X-Requested-With': 'XMLHttpRequest',

        'Content-Type': 'application/x-www-form-urlencodes;charset=UTF-8'

      }

      params = Qs.stringify(params)

    }

  }

  // 当出现某些情况的时候设置请求拦截

  axios.interceptors.response.use(response => {

    // if (response.data.statusCode === 2009) {     // 这里的状态码是根据后台设置的来

    //   Message.error({ message: '登录过期,请重新登录' })

    // }

    return response

  }, error => {

    // if (error.message.indexOf('timeout') >= 0) {

    //   Message.error({

    //     message: '请求超时,请稍后再试!'

    //   })    // 后台响应超时

    // } else if (error.response === undefined) {

    //   Message.error({

    //     message: '服务中断,请稍后再试!'

    //   })    // 后台无响应 

    // }

    return Promise.resolve(error.response)

  })

  //  发送请求

  return new Promise((resolve, reject) => {

    axios({

      url: path + url,

      method,

      type,

      data: params,

      timeout: 6000,

      headers: headers

    }).then(result => {

      resolve(result.data)

    }).catch(err => {

      reject(err)

    })

  })

}

在src下新建api文件,api文件夹下新建api.js,在里面调用axios方法:

import https from '@/utils/axios'
var url = process.env.NODE_ENV === 'development' ? '/api' : '/apis'
exprot const path = url + '/api-a-bkf-/user-mucon'

export const getAllCategorySubset= function(params) {
    let url = "/category/getAllCategorySubset"    //这个路由文件就是接口路径
    return https(url, params, 'post');
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容