axios的简单封装及在组件内使用
2024-08-30 14:49:20
/**第一步
* 配置编译环境和线上环境之间的切换
* 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>
最新文章
- 《深入理解Java虚拟机》调优案例分析与实战
- like语句百分号前置会使用到索引吗?
- Javascript初学篇章_3(注释/if/switch)
- 烂泥:查看服务器的BIOS是否开启CPU虚拟化
- [ORACLE错误]ORA-00054:resource busy and acquire with nowait specified解决方法
- php 错误 Strict Standards: PHP Strict Standards: Declaration of .... should be compatible with that of 解决办法
- Hibernate3回顾-3-Session管理
- android119 侧滑菜单
- 高仿优酷Android客户端图片左右滑动(自动切换)
- hdu1025 最长不下降子序列nlogn算法
- 辞 = or != 一个新的起点!!!
- Best Cow Line---POJ 3617(贪心)
- MySQL8.0.12 安装及配置、读写分离,主从复制
- PyInstaller Extractor安装和使用方法
- Django Rest framework基础使用之 serializer
- [MySQL]InnoDB引擎的行锁和表锁
- modern effective C++ -- Deducint Types
- 手动建立mapping以及增加属性
- CSR8670的A2DP与AVRCP的应用笔记
- ZeroTier One
热门文章
- Oracle10G各版本下载以及补丁地址
- 百度地图API--信息窗口
- Watir: 当出现错误提示AutoItX3.dll 没有注册的时候,该怎么处理?
- SQLite学习手册(开篇)
- Bug: CCScheduler#scheduleSelector. Selector already scheduled. Updating interval from: 0.0000 to 0.0000
- docker容器基础
- Python学习之旅—生成器与迭代器案例剖析
- 任务34:Cookie-based认证实现
- liteos内存(三)
- 张高兴的 .NET Core IoT 入门指南:(三)使用 I2C 进行通信