vue封装axios
npm install axios
http.js
import axios from 'axios' // 引入axios// 响应拦截器
// 响应拦截器
axios.interceptors.response.use(
response => {
console.log(response)
// 如果返回的状态码为200,说明接口请求成功,可以正常拿到数据
// 否则的话抛出错误
if (response.status === 200) {
return Promise.resolve(response)
} else {
return Promise.reject(response)
}
},
// 服务器状态码不是2开头的的情况
// 这里可以跟你们的后台开发人员协商好统一的错误状态码
// 然后根据返回的状态码进行一些操作,例如登录过期提示,错误提示等等
// 下面列举几个常见的操作,其他需求可自行扩展
error => {
if (error.response.status) {
return Promise.reject(error.response)
}
})
/**
* get方法,对应get请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
export function get (url, params) {
return new Promise((resolve, reject) => {
axios.get(url, {
params: params
}).then(res => {
resolve(res.data)
}).catch(err => {
reject(err.data)
})
})
}
/**
* post方法,对应post请求
* @param {String} url [请求的url地址]
* @param {Object} params [请求时携带的参数]
*/
export function post (url, params) {
return new Promise((resolve, reject) => {
axios.post(url, params)
.then(res => {
resolve(res.data)
})
.catch(err => {
reject(err.data)
})
})
}
api.js
/*** api接口统一管理
*/
import { get, post } from './http'
const preUrl = 'http://localhost:8081/'
export const apiAddress = p => get(preUrl + '/stuUser/list', p)
export const apiAddressa = p => post(preUrl + '/stuUser/list', p)
使用
<script>import { apiAddress } from '@/js/api'// 导入我们的api接口
export default {
name: 'App',
components: {
},
created () {
this.onLoad()
},
data () {
return {
}
},
methods: {
// 获取数据
onLoad () {
// 调用api接口,并且提供了两个参数
apiAddress({
page: 1,
rows: 1
}).then(res => {
// 获取数据成功后的其他操作
this.$message({
message: res,
type: 'success'
})
})
}
}
}
</script>
以上是 vue封装axios 的全部内容, 来源链接: utcz.com/z/378482.html