uview http 封装请求 有没有适合零基础学习的文章,如何解决?
import axios from "axios";
import qs from "qs";
import { Toast } from "vant";
// 引入element 按需引消息提示
// import { Message } from 'element-ui'
const service = axios.create({
baseURL: "",
timeout: 30000,
withCredentials: true
});
// 请求拦截器
let requestNum = 0;
service.interceptors.request.use(
config => {
// 增添token
// 每次请求时requestNum++
requestNum++;
config.headers["Content-Type"] = "application/x-www-form-urlencoded";
Toast.loading({
message: "加载中...",
forbidClick: true
});
// config.headers.Authorization = localStorage.getItem('logintoken') || ''
return config;
},
err => {
requestNum = 0;
Toast.clear();
Promise.reject(err);
}
);
// 响应拦截器
service.interceptors.response.use(
response => {
// else if (response.data.code !== 200) {
// Message.error(response.data.msg || '接口请求错误', 2000)
// }
// 以服务的方式调用的 Loading 需要异步关闭
// 每次请求时-- 主要时用于判断当前共请求了多少次,如果返还的次数不等于请求的次数的话就不会进入这个条件
// 只有当所有数据全返还时,才会关闭loading效果
requestNum--;
if (requestNum <= 0) {
Toast.clear();
requestNum = 0;
}
// 如果正常直接返回对应data请求数据
return response.data;
},
err => {
// 如果请求一旦出现问题 requestNum = 0 loadingInstance.close();
Message({
message: "服务器错误,请及时联系管理员!",
type: "error"
});
// 如果请求一旦出现问题 requestNum = 0 loadingInstance.close();
requestNum = 0;
Toast.clear();
return Promise.reject(err);
}
);
// 封装get请求
const get = (url, params) => {
return service({
url: url,
method: "get",
params: params
});
};
// 封装post请求
const post = (url, data) => {
return service({
url: url,
method: "post",
headers: { "Content-type": "application/json" },
data: JSON.stringify(data)
});
};
// 封装登录请求
const login = (url, data) => {
return service({
url: url,
method: "post",
headers: { "Content-type": "application/x-www-form-urlencoded" },
data: qs.stringify(data)
});
};
const upload = (url, data) => {
service({
method: "post",
url: url,
headers: {
"Content-type": "application/x-www-form-urlencoded"
},
data: data
});
};
export default {
get,
post,
login,
upload
// baseURL,
// upImgURL,
// imgURL
};
你参考一下这个 这个是我当时封装的axios 就 uview的话也是类似的逻辑 主要的就是你的请求响应拦截 400 500等状态码统一处理
token判断等等