• 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
  • 相关阅读:
    游戏中转轮抽奖的算法实现[转]
    前端的一份配置(备份)
    [转]Jquery通用开源框架之【ejq.js】
    【完整靠谱版】结合公司项目,仔细总结自己使用百度编辑器实现FTP上传的完整过程
    用Putty连接Linux
    使用Nginx的proxy_cache缓存功能取代Squid
    nginx for windows 配置多域名反向代理
    详细解析用Squid实现反向代理的方法
    用Squid和DNSPod打造自己的CDN详细教程
    WINDOWS下的squid
  • 原文地址:https://www.cnblogs.com/zqxi/p/12093136.html
Copyright © 2020-2023  润新知