在运用vue开辟时,官方引荐运用axios来要求接口
// axios官方地点
https://github.com/axios/axios
然则axios并不像 vue-resource 一样具有install,即不能直接 Vue.use(axios) 来运用,所以须要我们本身依据axios来写一个具有install要领的Http库。
1.装置axios
npm install axios
2.建立Http.js文件
import axios from 'axios'
export default {
install (Vue) {
// install要领,向Vue实例中增加一个$http要领
Vue.prototype.$http = axios
Vue.$http = axios
},
$http: axios
}
export const Http = axios
3.援用
import Vue from 'vue'
import Http from './Http'
Vue.use(http)
云云,就能够在vue中直接运用axios了
4.axios阻拦器
在开辟过程当中,会须要设置一些要求头,大众参数等,或许须要对要求效果举行一致处置惩罚(比方错误处置惩罚),这时候就能够用到axios阻拦器
建立interceptor.js文件
import axios from 'axios'
let interceptor = ''
export const myInterceptor = interceptor
// 设置要求阻拦器
export const setInterceptor = function (response) {
axios.interceptors.request.use((config) => {
config.headers.Authorization = token //设置要求头Authorization
config.headers.Accept = 'application/json' //设置要求头Accept
/*
详细设置须要依据现实开辟状况来设置
*/
return config
})
}
// 移除要求阻拦器
export const clearInterceptor = function () {
axios.interceptors.request.eject(myInterceptor)
}
ps:上例只树模了axios的要求阻拦,复兴阻拦时一样的处置惩罚体式格局
ps:在interceptor中暴露myInterceptor、setInterceptor与clearInterceptor 的原因是轻易随时作废与设置
5.设置axios默许要求地点
axios.defaults.baseURL = 'http://172.0.0.1'
虽然说险些都是运用webpack代办的体式格局来设置要求地点,但此体式格局依旧有时会用到