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

/**第一步
 * 配置编译环境和线上环境之间的切换
 * baseUrl: 域名地址
 * routerMode: 路由模式
 * imgBaseUrl: 图片所在域名地址
 *
 */
let Host = ‘‘;
let routerMode = ‘hash‘;
//let imgBaseUrl;

if(process.env.NODE_ENV == ‘development‘) {
    Host = ‘http://test.xxx.com‘; //测试环境 host
    //imgBaseUrl = ‘http://cangdu.org:8001/img/‘;  //如果图片需要放到第三方平台可以更改网络路径

} else if(process.env.NODE_ENV == ‘production‘) {
    Host = ‘http://xxx.com‘;   //生产环境 host
    //imgBaseUrl = ‘http://cangdu.org:8001/img/‘;  //如果图片需要放到第三方平台可以更改网络路径
}

export {
    Host,
    routerMode
    //imgBaseUrl,
}
//第二步import { Host } from ‘./env‘;
import Vue from ‘vue‘;
import axios from ‘axios‘;
import { ToastPlugin, AlertPlugin } from ‘vux‘;
import Qs from ‘qs‘;
//axios.defaults.timeout = 5000; //响应时间
axios.interceptors.request.use(function(config) {
  //在发送请求之前做一些事情
  return config;
}, function(error) {
  // 请求错误做一些事情
  return Promise.reject(error);
});

axios.interceptors.response.use(function(response) {
  //对响应数据做一些处理
  return response;
}, function(error) {
  // 对响应失败做一些处理
  return Promise.reject(error);
});

//get封装
export function getAjax(url, params = {}) {
  return new Promise((resolve, reject) => {
    axios.get(url, {
        params: params
      })
      .then(response => {
        resolve(response.data);
      })
      .catch(err => {
        reject(err)
      })
  })
}
//post封装
export function postAjax(url, data = {}) {
  return new Promise((resolve, reject) => {
    axios.post(url, Qs.stringify(data), {
          headers: {
              ‘X-Requested-With‘: ‘XMLHttpRequest‘,
            ‘Content-Type‘: ‘application/x-www-form-urlencoded‘,
          }
        })
      .then(response => {
        resolve(response.data);
      }, err => {
        reject(err)
      })
  })
}
//第三步import { Host } from ‘./env‘;
import { getAjax, postAjax } from ‘./http‘
import { formatParam } from ‘./mUtils‘
import Qs from ‘qs‘;
//报名预订
export function signUpAdvance(phoneNum, code) {
  let data = {
    phone: phoneNum,
    captcha: code,
  }
  const res4 = postAjax(`${Host}/website/login`,data);
  return res4;
}

// 短信填写
export function getCode(pages) {
  let params = {
    page: pages
  }
  const res6 = getAjax(`${Host}/website/banner/?${formatParam(params)}`);
  return res6;
}
//第四步(组件内使用)<script>
import { getCode, signUpAdvance } from ‘../config/api‘
export default {
  data() {
    return {

    }
  },
  created() {   //get请求
    getCode(‘home‘).then(res => {
      console.log(res);
    }).catch(err => {
      console.log(err);
    })

  },
  mounted() {   //post请求
    signUpAdvance(‘15220074083‘,‘400220‘).then(res => {
      console.log(res);
    }).catch(err => {
      console.log(err);
    })
  }
}

</script>

原文地址:https://www.cnblogs.com/lhl66/p/9017199.html

时间: 2024-09-30 15:37:54

axios的简单封装及在组件内使用的相关文章

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

wangEditor 2.0版本简单封装为vue组件

<template> <div> <div id="editor"> </div> </div> </template> <script> //1.https://www.kancloud.cn/wangfupeng/wangeditor2 //npm install wangeditor import './dist/js/lib/jquery-1.10.2.min.js' import './dis

axios的简单封装

import axios from 'axios' const instance = axios.create({ baseURL: 'https://m.maizuo.com', timeout: 10000, // headers: { 'X-Client-Info': '{"a":"3000","ch":"1002","v":"5.0.4","e":"

axios简单封装

写在最前面 新手前端刚刚接触vue,感觉真的好用.项目中需要使用axios,然后学习了一下.借鉴网上一些大佬的经验,现在分享一下axios的简单封装,如果有什么错误的地方,请大家指出. axios安装 npm install axios --save 最最简单的使用 首先在src目录下创建axios文件夹,然后创建index.js和fetch.js两个文件. fetch.js文件代码如下: import axios from 'axios' //定义fetch函数,config为配置 expor

用XHR简单封装一个axios

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta http-equiv="X-UA-Compatible"

构建简单的 C++ 服务组件,第 1 部分: 服务组件体系结构 C++ API 简介

构建简单的 C++ 服务组件,第 1 部分: 服务组件体系结构 C++ API 简介 熟悉将用于 Apache Tuscany SCA for C++ 的 API.您将通过本文了解该 API 的主要组成部分,以便快速入门. 查看本系列更多内容 | 0 评论: Ed Slattery ([email protected]), 软件工程师, IBM UK Pete Robbins ([email protected]), 软件工程师, IBM UK Andrew Borley ([email pro

iOS开发——UI篇OC篇&amp;UITableView简单封装

UITableView简单封装 UITableView时iOS开发中使用最多也是最重的一个UI空间,其实在App Store里面的%80以上的应用都用到了这个控件,所以就给大家介绍一下,前面的文章中也提到了,在后面的文章中将会详细解释. 当然这篇文档并不是介绍证明去使用它,只是说说怎么去封装活着更好的使用. 这里主要是关于UItableView中Cell中的多功能实现 一:新建一个模型数据,用于Cell的实现 1 /** 2 * 覆盖系统的枚举 3 */ 4 typedef enum { 5 C

Lucene5学习之LuceneUtils工具类简单封装

花了整整一天时间,将Lucene5中有关索引的常见操作进行了简单封装,废话不多说,上代码: package com.yida.framework.lucene5.util; import java.io.IOException; import java.util.concurrent.ExecutorService; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; i

vue + elementui 中的弹窗组件封装成公共组件

如果一个弹窗比较简单,可以直接放在页面中,通过visible属性的true,false控制显示隐藏就可以了,我们今天要说的是将个比较复杂的弹窗组件封装成全局组件,然后可以在项目中的任何一个页面引用~~下面走起 1.首先要注册个全局组件,用下面的全局API  Vue.component('my-component', { /* ... */ }) 在js文件中首先引入这个弹窗组件,组件名称是iesPersonRadioDialog,项目中会引入一个js文件,这个js文件中在分别引入其他的js,模块