zoukankan      html  css  js  c++  java
  • 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
  • 相关阅读:
    团队项目-第二阶段冲刺1
    第十四周总结
    第十三周总结
    程序员修炼之道阅读笔记02
    第十二周总结
    程序员修炼之道阅读笔记01
    Spring Boot 揭秘与实战 自己实现一个简单的自动配置模块
    Spring Boot 揭秘与实战 源码分析
    Spring Boot 揭秘与实战 源码分析
    Spring Boot 揭秘与实战(九) 应用监控篇
  • 原文地址:https://www.cnblogs.com/zqxi/p/12093136.html
Copyright © 2011-2022 走看看