uni.addInterceptor('request', {
invoke(args) {//拦截前触发
let baseUrl = "https://www.xxxx.cn/api/v1/wxapp"
if (process.env.NODE_ENV === 'development') {
baseUrl = "http://127.0.0.1:22345/api"
}
args.url = baseUrl + args.url
args.header["Content-Type"] = "application/json;charset=UTF-8"
//获取token
let token = uni.getStorageSync('token')
if (token) {
args.header["Authorization"] = token
}
},
success(args) {//成功回调拦截
if (!args || !args.statusCode) {
return Promise.reject("错误的消息内容。");
}
//中文显示
switch (args.statusCode) {
case 100:
args.message = "客户端应继续其请求";
break;
case 101:
args.message = "服务器根据客户端的请求切换协议。";
break;
case 200:
args.message = "请求成功。";
break;
case 201:
args.message = "成功请求并创建了新的资源。";
break;
case 202:
args.message = "已经接受请求,但未处理完成。";
break;
case 203:
args.message = "非授权信息。";
break;
case 204:
args.message = "服务器成功处理,但未返回内容。";
break;
case 205:
args.message =
"服务器处理成功,用户终端(例如:浏览器)应重置文档视图。";
break;
case 206:
args.message = "服务器成功处理了部分GET请求。";
break;
case 300:
args.message = "请求的资源可包括多个位置。";
break;
case 301:
args.message = "请求的资源已被永久的移动到新URI。";
break;
case 302:
args.message = "临时移动。";
break;
case 303:
args.message = "查看其它地址。";
break;
case 304:
args.message = "所请求的资源未修改。";
break;
case 305:
args.message = "所请求的资源必须通过代理访问。";
break;
case 306:
args.message = "已经被废弃的HTTP状态码。";
break;
case 307:
args.message = "临时重定向。";
break;
case 400:
args.message = "客户端请求的语法错误,服务器无法理解。";
break;
case 401:
args.message = "请先登录系统。";
//跳转到登录页面
break;
case 402:
args.message = "暂未定义。";
break;
case 403:
args.message = "服务器理解请求客户端的请求,但是拒绝执行此请求。";
break;
case 404:
args.message = "服务器无法根据客户端的请求找到资源(网页)。";
break;
case 405:
args.message = "客户端请求中的方法被禁止。";
break;
case 406:
args.message = "服务器无法根据客户端请求的内容特性完成请求。";
break;
case 407:
args.message = "请求要求代理的身份认证。";
break;
case 408:
args.message = "服务器等待客户端发送的请求时间过长。";
break;
case 409:
args.message = "服务器处理请求时发生了冲突。";
break;
case 410:
args.message = "客户端请求的资源已经不存在。";
break;
case 411:
args.message =
"服务器无法处理客户端发送的不带Content-Length的请求信息。";
break;
case 412:
args.message = "客户端请求信息的先决条件错误。";
break;
case 413:
args.message = "由于请求的实体过大,服务器无法处理,因此拒绝请求。";
break;
case 414:
args.message = "请求的URI过长(URI通常为网址),服务器无法处理。";
break;
case 415:
args.message = "服务器无法处理请求附带的媒体格式。";
break;
case 416:
args.message = "客户端请求的范围无效。";
break;
case 417:
args.message = "服务器无法满足Expect的请求头信息。";
break;
case 500:
args.message = "服务器内部错误,无法完成请求。";
break;
case 501:
args.message = "服务器不支持请求的功能,无法完成请求。";
break;
case 502:
args.message =
"作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应。";
break;
case 503:
args.message =
"由于超载或系统维护,服务器暂时的无法处理客户端的请求。";
break;
case 504:
args.message = "充当网关或代理的服务器,未及时从远端服务器获取请求。";
break;
case 505:
args.message = "服务器不支持请求的HTTP协议的版本,无法完成处理。";
break;
default:
args.message = "状态错误(" + args.statusCode + ")";
break;
}
//处理状态码
if (args.statusCode !== 200) {
uni.showToast({
title: args.message,
})
return Promise.reject(args.message);
}
if(!args.data || !args.data.code || !args.data.msg){
return Promise.reject("错误的数据内容。");
}
//处理消息码
if (args.data && args.data.code !== 200) {
uni.showToast({
title: args.data.msg,
})
return Promise.reject(args.data.msg);
}
//返回消息
return Promise.resolve(args.data.data)
},
fail() {//失败回调拦截
uni.showToast({
title: "无法发起请求",
})
},
})
function get(url, params) {
const promise = new Promise((resolve, reject) => {
uni.request({
url: url,
data: params,
header: {},//必须的,用于拦截请求
success: (res) => {
//上面已经对错误进行了处理,直接返回的就是data
resolve(res);
},
fail: (err) => {
reject(err)
}
});
});
return Promise.resolve(promise);
}
export default {
get,
};
import request from "@/utils/request";
function getCode(mobile) {
return request.get("/user/login", { mobile: mobile });
}
export default {
getCode,
};
import userApis from "@/apis/user.js";
async created() {
//测试网络
await userApis.getCode("123456789");
},
原文地址:https://blog.csdn.net/csdn93033/article/details/129538255
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_36658.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。