vue実装の要求サーバ側APIインターフェースの例
3884 ワード
本明細書の例は、vue実装の要求サーバ端APIインターフェースを説明する。皆さんに参考にしてあげます。具体的には以下の通りです。
import axios from 'axios'
import router from '@/router'
axios.defaults.timeout = 3000
axios.defaults.baseURL = ''
axios.interceptors.request.use(
config => {
// const token = getCookie(' ')
config.data = config.data
config.headers = {
'Content-Type': 'application/json; charset=utf-8'
}
if (config.url === '/api/login/index') {
} else {
if (localStorage.getItem('Authorization')) {
config.headers.Authorizatior = localStorage.getItem('Authorization')
}
}
// if (token) {
// config.params = {'token': token}
// }
return config
},
error => {
return Promise.reject(error)
}
)
axios.interceptors.response.use(
response => {
//
if (response.data.code === 0) {
router.push({
path: '/',
querry: {
redirect: router.currentRoute.fullPath
}
})
}
return response
},
error => {
if (error.response) {
switch (error.response.status) {
case 401:
localStorage.removeItem('Authorization')
router.push('/login')
}
}
return Promise.reject(error)
}
)
/**
* get
* @param url
* @param data
* @returns {Promise}
*/
export function fetch (url, params = {}) {
return new Promise((resolve, reject) => {
axios.get(url, {
params: params
})
.then(response => {
resolve(response.data)
})
.catch(err => {
reject(err)
})
})
}
/**
* post
* @param url
* @param data
* @returns {Promise}
*/
export function post (url, data = {}) {
return new Promise((resolve, reject) => {
axios.post(url, data)
.then(response => {
resolve(response.data)
}, err => {
reject(err)
})
})
}
/**
* patch
* @param url
* @param data
* @returns {Promise}
*/
export function patch (url, data = {}) {
return new Promise((resolve, reject) => {
axios.patch(url, data)
.then(response => {
resolve(response.data)
}, err => {
reject(err)
})
})
}
/**
* put
* @param url
* @param data
* @returns {Promise}
*/
export function put (url, data = {}) {
return new Promise((resolve, reject) => {
axios.put(url, data)
.then(response => {
resolve(response.data)
}, err => {
reject(err)
})
})
}
メールの呼び出し
import { fetch, post, patch, put } from '@/util/fetch'
Vue.prototype.get = fetch
Vue.prototype.post = post
Vue.prototype.patch = patch
Vue.prototype.put = put
表示ページの使用
export default {
name: 'login',
data () {
return {
mobile: '',
password: ''
}
},
components: {
XInput,
XButton,
Group,
Box
},
methods: {
handleLogin () {
let params = {}
params.username = this.mobile
params.password = this.password
this.post('/api/driver/index', params).then((data) => {
console.log(data)
}).catch((error) => {
console.log(error)
})
}
}
}
ここで述べたように、皆さんのvue.jsプログラムの設計に役に立ちます。