axios简单封装

 

1 :api接口

 

import request from '../utils/http'

// 使用qs库对post提交的数据进行格式化 ---- > qs需要安装   npm install qs --save
import qs from 'qs';

// get 模板
export function getJsonData(params) {
    return request({
      url: '',
      method: 'get',
      params
    })
  }

// 模拟错误请求数据
export function getErrJsonData(params) {
  return request({
    url: 'http://localhost:8080/data1.json',
    method: 'get',
    params
  })
}

// post模板
export function addDataToStu(params) {
    return request({
      url: '',
      method: 'post',
      // post请求的对象参数
      data: qs.stringify(params)
    })
  }
  

2:http  axios的简单封装

// axios简单的封装

// import axios from 'axios'
import axios from './request'

// 设置请求的baseUrl----基准请求路径
// let baseURL = "http://localhost:8080"
let baseURL = ''

let ajax = function(config) {

    config.url = baseURL + config.url

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

        var options = {
            method: config.method,
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
                // 'Accept': 'application/json',
                // 'Content-Type': 'application/json',
            },
       //body:config.data //get 请求 data: config.data  //post 请求 } axios(config.url, options).then((res)
=> { resolve(res) }) }) } export default ajax;

3:request http配置

/**
 * Created by superman on 17/2/16.
 * http配置
 */
import axios from 'axios'
import router from '../router'

// axios 配置
axios.defaults.timeout = 5000
axios.defaults.baseURL = ''

// http request 拦截器
axios.interceptors.request.use(
  config => {
    // config.headers.Authorization = `token ${store.state.token}`
    console.log(config, '+++++++++++++++++++----------------')
    return config
  },
  err => {
    return Promise.reject(err)
  },
)

// http response 拦截器
axios.interceptors.response.use(
  response => {
    return response
  },
  error => {
    console.log(error.response, '===================')
    if (error.response) {
    //根据自己实际情况执行不同的状态
switch (error.response.status) { case 404: // 404 清除token信息并跳转到登录页面 localStorage.removeItem('username'); // 只有在当前路由不是登录页面才跳转 router.currentRoute.path !== 'login' && router.replace({ path: 'login', // query: { redirect: router.currentRoute.path }, }) } } // console.log(JSON.stringify(error));//console : Error: Request failed with status code 402 return Promise.reject(error.response.data) }, ) export default axios
posted @ 2019-12-24 19:19  casf  阅读(398)  评论(0编辑  收藏  举报