vue 请求api一行_vue实现的请求服务器端API接口示例

本文实例讲述了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)

})

})

}

main.js调用

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程序设计有所帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值