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>
axios的简单封装及在组件内使用的更多相关文章
- axios简单封装
写在最前面 新手前端刚刚接触vue,感觉真的好用.项目中需要使用axios,然后学习了一下.借鉴网上一些大佬的经验,现在分享一下axios的简单封装,如果有什么错误的地方,请大家指出. axios安装 ...
- 简单封装axios api
可以在代码逻辑中写axios请求,处理请求结果,但是随着项目越来越大,代码会很繁琐,不容易维护,所以,可以把一些在所有请求中都要处理的逻辑抽取出来,封装成api方法.比如每次请求中都要判断是否有权限, ...
- 用XHR简单封装一个axios
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 微信小程序简单封装图片上传组件
微信小程序简单封装图片上传组件 希望自己 "day day up" -----小陶 我从哪里来 在写小程序的时候需要上传图片,个人觉得官方提供的 Uploader 组件不是太好用, ...
- 继续封装个 Volley 组件
本篇文章已授权微信公众号 dasu_Android(大苏)独家发布 前面已经封装了很多常用.基础的组件了:base-module, 包括了: crash 处理 常用工具类 apk 升级处理 log 组 ...
- AngularJS指令封装高德地图组件
1 概述 公司移动门户原来是基于AngularJS指令封装的百度地图组件,用于签到.签退.定位等功能,在使用过程中发现百度地图频繁的弹出广告,所以打算重新引用其它地图组件,最后决定基于AngularJ ...
- day 87 Vue学习六之axios、vuex、脚手架中组件传值
本节目录 一 axios的使用 二 vuex的使用 三 组件传值 四 xxx 五 xxx 六 xxx 七 xxx 八 xxx 一 axios的使用 Axios 是一个基于 promise 的 HT ...
- 原生 Ajax 封装 和 Axios 二次 封装
AJAX 异步的JavaScript与XML技术( Asynchronous JavaScript and XML ) Ajax 不需要任何浏览器插件,能在不更新整个页面的前提下维护数据,但需要用户允 ...
- vuex存取token,http简单封装、模拟登入权限校验操作、路由懒加载的几种方式、vue单页设置title
1.config index.js下面的跨域代理设置: proxyTable: { '/api': { target: 'http://xxxx', //要访问的后端接口 changeOrigin: ...
随机推荐
- 一步一步学Silverlight 2系列(10):使用用户控件
概述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- stl里面的空间适配器
一般而言,如果频繁地向system heap申请和释放空间很小的内存空间块(小于128B的),就会对系统内存资源产生很多内存碎片(fragment)的问题,而C++的::operator new() ...
- ubuntu docker的安装和使用
Docker CE for Ubuntu Docker CE for Ubuntu is the best way to install the Docker platform on Ubuntu L ...
- 自写程序调用mount
代码: int fd = open("/dev/fuse", O_RDWR); printf("fd=%d\n",fd); int res; res=mount ...
- Oracle中如何用SQL检测字段是否包括中文字符
用Oracle的编码转换的函数Convert实现,测试后可行. SQL> select * 2 from (select 'abcd' c1 from dual 3 ...
- SPOJ:One piece(不错的带权括号最大匹配问题)
One of DB and TN common interests is traveling. One day, they went to Grand Line and found One Piece ...
- [Selenium] IOS 之 appium
从 Selenium 的官方文档来看,推荐用户使用 ios-driver 或 appium 而不是官方发布的 iPone Driver. 他们的地址分别是: http://ios-driver.git ...
- liunx下的权限详解
用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 一般为文件的创建 ...
- 【USACO】The Cow Prom
[题目链接] 点击打开链接 [算法] tarjan求强连通分量 [代码] #include<bits/stdc++.h> #define MAXN 20005 using namespac ...
- javascript之数组的6种去重方法
去重 var arr=[11,11,333,4,4,5,66,66,7]; // 方法一:在新数组内判断不存在时加入 var newarr1=[]; function quchong1(){ for( ...