一、安裝axios
npm install axios
二、封裝方法
在src目錄下新建utls文件夾,並在該文件夾建如下文件:
1、url.js
統一放置接口
// 獲取省市
let area = 'GetRegionList';
module.exports = {
area
}
2、http.js
引入axios、mint-ui、並封裝get請求、post請求方法
import axios from 'axios';
import {MessageBox, Toast, Indicator} from 'mint-ui';
axios.defaults.timeout = 50000//默認請求超時時間
axios.defaults.baseURL = "/api";
axios.defaults.headers.common["Authorization"] = 'toke信息'
// get
export function getHttp (url, params = {}) {
return new Promise((resolve, reject) => {
axios.get(url, data)
.then(response => {
resolve(response.data)
Indicator.close() // // 關閉動畫
})
.catch(err => {
reject(err)
Indicator.close() // // 關閉動畫
MessageBox.alert('message', err)
})
})
}
// post
export function postHttp (url, data = {}) {
Indicator.open({
text: '加載中...',
spinnerType: 'fading-circle'
})
return new Promise((resolve, reject) => {
axios.post(url, data)
.then(response => {
if (response.status == 200) {
resolve(response.data)
Indicator.close(); // 關閉動畫
} else {
Toast(response.data.msg)
}
}, (err) => {
reject(err)
Indicator.close() // // 關閉動畫
})
})
}
三、配置main.js
import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import {getHttp, postHttp} from './utils/http'
Vue.prototype.$getHttp = getHttp
Vue.prototype.$postHttp = postHttp
// mint-ui
import Mint from 'mint-ui';
Vue.use(Mint);
import 'mint-ui/lib/style.css';
Vue.config.productionTip = false;
router.beforeEach((to, from, next) => {
/* 路由發生變化修改頁面title */
if (to.meta.title) {
document.title = to.meta.title
}
next()
})
new Vue({
router,
store,
render: h => h(App)
}).$mount("#app");
四、配置本地請求代理
在根目錄下新建vue.config.js,做如下配置
module.exports = {
publicPath:'./',
configureWebpack:{
resolve: {
alias: {
'assets': '@/assets',
'common': '@/common',
'components': '@/components',
'network': '@/network',
'views': '@/views',
'plugins': '@/plugins',
}
}
},
devServer: {
/* 自動打開瀏覽器 */
open: true,
/* 設置為0.0.0.0則所有的地址均能訪問 */
host: '0.0.0.0',
port: 8066,
https: false,
hotOnly: false,
/* 使用代理 */
proxy: {
'/api': {
/* 目標代理服務器地址 */
target: 'https://www.baidu.com/',
/* 允許跨域 */
changeOrigin: true,
},
},
}
}
五、頁面使用
async getArea(){ // 獲取省市數據
let res = await this.$postHttp(urls.area);
if(res.Success){
console.log('我是省市數據', res.Result);
}else{
Toast.fail(res.Message);
}
}
六、效果

