封装 axios


mian.js 中封装 axios(1)

// 配置请求的跟路径  引入 api接口   import axios from 'axios'   // 配置进度条 // 安装 npm install --save nprogress // 导入 NProgress包对应的JS和css import NProgress from "nprogress" import 'nprogress/nprogress.css' // NProgress.start(); // NProgress.done(); axios.defaults.baseURL = 'http://127.0.0.1:8888/api/private/v1/' // 拦截器   //在 request 拦截器中,展示进度条 NProgress.start() axios.interceptors.request.use((config) => {   // request请求拦截器   // console.log(config);   NProgress.start()   config.headers.Authorization = sessionStorage.getItem('token')   // 在最后必须 return config   return config }) //在response拦截器中,隐藏进度条 NProgress.done() axios.interceptors.response.use((config)=>{   // response响应拦截器   NProgress.done()   return config })    

封装 axios(2)

第一步 (创建)

在 api/request.js

import axios from 'axios'

const request = axios.create({

  baseURL: 'http://api-toutiao-web.itheima.net',

  timeout: '5000'

  // transformResponse: [function (data) {

  //   try {

  //     console.log(jsonBig.parse(data))

  //     // 如果转换成功则返回转换的数据结果

  //     return jsonBig.parse(data)

  //   } catch (err) {

  //     // 如果转换失败,则包装为统一数据格式并返回

  //     return data

  //   }

  // }]

})

第二步(导入)

在api/user.js 中

import { request } from './request'

// 登录

export function login (data) {

  return request({

    method: 'POST',

    url: '/mp/v1_0/authorizations',

    data

  })

}

// 获取用户信息(使用)

export function getUserProfile () {

  return request({

    method: 'GET',

    url: '/mp/v1_0/user/profile'

  })

}

 

在文件中使用 api 方法  // 解构出需要使用的 api方法 

import { login } from "api/user.js";

/ / 使用 api 方法

const { data: res } = await login(this.loginForm);

 
vue