axios post,get 封装,支持数据类型

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://hzzly.net:4000‘;

// 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‘
});
时间: 2024-10-11 05:46:43

axios post,get 封装,支持数据类型的相关文章

使用的SQLServer版本不支持数据类型“datetime2“

快速解决方法: 原因,在使用ado.net entity的时候,entity使用的数据库是sqlserver 2008, 但后来实际使用中使用的数据库是sqlserver 2005, 操作DateTime类型的数据是会提示:”使用的 SQL Server 版本不支持数据类型“datetime2” The version of SQL Server in use does not support datatype ‘datetime2解决办法Open your EDMX in a file edi

NSNumber(封装基本数据类型)

// // main.m // OC05-task-04 // // Created by Xin the Great on 15-1-26. // Copyright (c) 2015年 Xin the Great . All rights reserved. // #import <Foundation/Foundation.h> int main(int argc, const char * argv[]) { @autoreleasepool { // insert code here

使用的 SQL Server 版本不支持数据类型“datetime2”解决办法

错误原因,在使用ado.net entity的时候,entity使用的数据库是sqlserver 2008,但后来实际使用中使用的数据库是sqlserver 2005 使用的 SQL Server 版本不支持数据类型“datetime2” The version of SQL Server in use does not support datatype ‘datetime2 解决办法 Open your EDMX in a file editor (or “open with…” in Vis

使用的 SQL Server 版本不支持数据类型“datetime2”.

错误原因,在使用ado.net entity的时候,entity使用的数据库是sqlserver 2008, 但后来实际使用中使用的数据库是sqlserver 2005, 使用的 SQL Server 版本不支持数据类型“datetime2” The version of SQL Server in use does not support datatype ‘datetime2 解决办法 Open your EDMX in a file editor (or “open with…” in V

使用的 SQL Server 版本不支持数据类型“datetime2”的解决办法

错误原因,在使用ado.net entity的时候,entity使用的数据库是sqlserver 2008, 但后来实际使用中使用的数据库是sqlserver 2005, 使用的 SQL Server 版本不支持数据类型“datetime2” The version of SQL Server in use does not support datatype ‘datetime2 解决办法 Open your EDMX in a file editor (or “open with…” in V

axios 二次封装

一般项目往往要对 axios 库进行二次封装,添加一些自定义配置和拦截器等 案例 ./service/axios.js 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991

axios的简单封装及在组件内使用

/**第一步 * 配置编译环境和线上环境之间的切换 * baseUrl: 域名地址 * routerMode: 路由模式 * imgBaseUrl: 图片所在域名地址 * */ let Host = ''; let routerMode = 'hash'; //let imgBaseUrl; if(process.env.NODE_ENV == 'development') { Host = 'http://test.xxx.com'; //测试环境 host //imgBaseUrl = 'h

springmvc中model可以封装的数据类型

查看源码可以知道,model中可以存放的数据类型 Model addAttribute(String var1, @Nullable Object var2); Model addAttribute(Object var1); Model addAllAttributes(Collection<?> var1); Model addAllAttributes(Map<String, ?> var1); 引用一下 model是一种概念,而不是一种具体的参数或是其他的具体的体现,MVC

vue中axios请求简单封装

1.http.js /**axios封装 * 请求拦截.相应拦截.错误统一处理 */ import axios from 'axios'; import QS from 'qs'; import { Toast } from 'vant'; import store from '../store/index' // 环境的切换 if (process.env.NODE_ENV == 'development') { axios.defaults.baseURL = '/api'; } else