axios post,get 封装,支持数据类型
发布日期:2021-09-03 20:58:04 浏览次数:17 分类:技术文章

本文共 2330 字,大约阅读时间需要 7 分钟。

import axios from 'axios'import store from '../vuex/store'import router from '../router/index'import { stringify } from 'qs'  //qs模块// axios 配置axios.defaults.timeout = 5000;axios.defaults.baseURL = '';// http request 拦截器axios.interceptors.request.use(  config => {    if (store.state.token) {      config.headers.Authorization = `token ${store.state.token}`;    }    return config;  },  err => {    return Promise.reject(err);  });// http response 拦截器axios.interceptors.response.use(  response => {    return response;  },  error => {    if (error.response) {      switch (error.response.status) {        case 401:          // 401 清除token信息并跳转到登录页面          //store.commit(types.LOGOUT);          router.replace({            path: 'login',            query: {redirect: router.currentRoute.fullPath}          });          break;        case 403:          break;        case 504:          break;        case 500:          //store.dispatch(types.AJAX_ERROR,500);          break;        case 404:          //store.dispatch(types.AJAX_ERROR,404);          break;      }    }    console.log(JSON.stringify(error));//console : Error: Request failed with status code 402    return Promise.reject(error.response.data)  });/*{  type:type,    params:params,}*/// 封装请求export function fetch (url, options) {  var opt = options || {}  return new Promise((resolve, reject) => {    axios({      method: opt.type || 'post',      url: url,      params: opt.params || {},      // 判断是否有自定义头部,以对参数进行序列化。不定义头部,默认对参数序列化为查询字符串。      data: (opt.headers ? opt.data : stringify(opt.data)) || {},      responseType: opt.dataType || 'json',      // 设置默认请求头      headers: opt.headers || {'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8'}    }).then(response => {      if (response.data.code === 0) {        resolve(response.data)      } else if (response.data.code === '000') {        resolve(response.data)      } else {        reject(response.data)        //store.commit('SET_LOADING', false)      }    }).catch(error => {      console.log(error)      reject(error)      //store.commit('SET_LOADING', false)    })  })}export default axios;

使用axios封装的功能

import { fetch } from '../../util/api'//用户登录export const userLogin= (data)=> fetch('/api/users/api/userLogin',{  data,  'type':'post'});

 

转载于:https://www.cnblogs.com/szatpig/p/7608718.html

转载地址:https://blog.csdn.net/weixin_34195142/article/details/92845874 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:将int读到0显示为0000
下一篇:项目需求分析报告

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年03月21日 04时45分41秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章