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

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

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
下一篇:项目需求分析报告

发表评论

最新留言

感谢大佬
[***.249.79.60]2022年04月26日 03时45分06秒