需要创建俩个js文件 http.js 和 api.js
在http.js中引入axios,对get和post进行封装请求方式,在这里可以设置请求头和超时时间,也可以进行环境的切换,这里的环境指的是开发环境和生产环境,也可以设置请求拦截和响应拦截
在http.js中
//第一步:引入axios
import axios from 'axios';
//在这里设置开发环境和生产环境的默认路径
//development是开发环境 production是生产环境
if(process.env.NODE_ENV=='development'){
axios.defaults.baseURL='http://120.53.31.103:84/api/app/'
}
if(process.env.NODE_ENV=='production'){
axios.defaults.baseURL='https://wap.365msmk.com'
}
//这里是设置请求超时时间 时间为5秒
axios.defaults.timeout=5000;
//在请求拦截里设置权限 这里是设置的是H5的权限
//如果不设置的话数据会请求失败或为空数据,在这里也可以用来判断token
axios.interceptors.request.use(
config=>{
config.headers={DeviceType:"H5"}
return config;
}
)
//封装get请求
export function get(url,params){
return new Promise((resolve,reject)=>{
axios.get(url,{
params:params
}).then(res=>{
resolve(res)
}).catch(err=>{
reject(err)
})
})
}
//封装post请求
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中
//引入http.js中的get和post请求
import {get,post} from "../http/http.js"
//对请求的数据进行封装
export function getBanner(){
return get("banner")
}
在vue文件中使用封装好的方法
//引入封装好的方法getBanner
import { getBanner} from "../../api/api.js";
async mounted() {
var a = await getBanner();
//此时就能打印出数据
console.log(a);
}