vue 프로젝트 - 캡슐화된 API 인터페이스

1511 단어
1./src/아래에 js 파일 AxiosAsk를 만듭니다.js
import Vue from 'vue'
import axios from 'axios'
var vm = '';
Vue.prototype.thisVm = function(_this) {
	vm = _this;
}
const APIASK = (url, type, data) => {
	let hostUrl = JSON.parse(localStorage.LMUrl).hostUrl;
	let ax = {
		method: type,
		url: hostUrl + url,
		headers: {
			"token": data.token
		},
		data: {},
		timeout: 15000
	}
	if (type == 'post') {
		ax.data = data;
	} else if (type == 'get') {
		ax.params = data;
	}
	let res = axios(ax).then((data) => {
        //     
		if (data.status == 200) {
			if (data.data.code == 400) {
				vm.$message.error(data.data.msg);
			} else if (data.data.code == 402) {
				vm.$router.push({
					path: '/'
				})
			}
		} else {
			vm.$message.error('     ');
		}
        //      END
		return data.data
	}).catch((error) => {
		vm.$message.error('      ');
		return 'NetworkError';
	})
	return res
}

export default {
	APIASK
}

2.App.vue
created() {
    this.thisVm(this);
}

3. vue 페이지 호출
import $http from '../AxiosAsk'
let data = {//           
    token: this.token
};
let res = $http.APIASK('/login', 'post', data);
Promise.resolve(res).then(data => {
    if (data.code == 0) {
        //    
    }
})

 
 
 
 
 
 
 
 
 
 
 
 
 

좋은 웹페이지 즐겨찾기