安装axios

cnpm i axios -S

项目根目录分别新建.env.development文件和.env.production文件

//.env.development文件

#开发环境

NODE_ENV = 'development'

# api地址

VUE_APP_BASE_API = 'http://localhost:3000'

//.env.production文件

#生产环境

NODE_ENV = 'production'

# api地址

VUE_APP_BASE_API = 'http://线上接口地址'

src文件夹下新建utils文件夹,建立request.js文件

import axios from 'axios';

//根据环境 给指定的接口地址

const request = axios.create({

baseURL: process.env.VUE_APP_BASE_API,

timeout: 3000

})

//状态码返回

const codeMessage = {

201: '新建或修改数据成功。',

202: '一个请求已经进入后台排队(异步任务)。',

204: '删除数据成功。',

400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',

401: '用户没有权限(令牌、用户名、密码错误)。',

403: '用户得到授权,但是访问是被禁止的。',

404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',

406: '请求的格式不可得。',

410: '请求的资源被永久删除,且不会再得到的。',

422: '当创建一个对象时,发生一个验证错误。',

500: '服务器发生错误,请检查服务器。',

502: '网关错误。',

503: '服务不可用,服务器暂时过载或维护。',

504: '网关超时。',

};

//请求拦截

request.interceptors.request.use(

config => {

return config

},

error => {

console.log('请求拦截错误', error) // for debug

return Promise.reject(error)

}

)

//响应拦截

request.interceptors.response.use(

response => {

console.log('响应返回值', response.data);

return response.data

},

error => {

const { response } = error

return Promise.reject({ "status": response.status, "message": codeMessage[response.status] })

}

)

export default request

封装请求接口(src文件夹下新建api文件夹,新建user.js文件)

import request from '@/utils/request';

export const getUser = () =>{

return request({

url:'get_user_info',

method:'get'

})

}

使用

import { getUser} = '@/api/user'

getUser()

.then(res=>{

console.log(res);

})

.catch(err=>{

console.log(err);

})

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐