开源 企业版 高校版 私有云 模力方舟 AI 队友
代码拉取完成,页面将自动刷新
加入 Gitee
与超过 1400万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
已有帐号? 立即登录
文件
main
分支 (2)
main
dist
main
分支 (2)
main
dist
克隆/下载
克隆/下载
提示
下载代码请复制以下命令到终端执行
为确保你提交的代码身份被 Gitee 正确识别,请执行以下命令完成配置
初次使用 SSH 协议进行代码克隆、推送等操作时,需按下述提示完成 SSH 配置
1 生成 RSA 密钥
2 获取 RSA 公钥内容,并配置到 SSH公钥
在 Gitee 上使用 SVN,请访问 使用指南
使用 HTTPS 协议时,命令行会出现如下账号密码验证步骤。基于安全考虑,Gitee 建议 配置并使用私人令牌 替代登录密码进行克隆、推送等操作
Username for 'https://gitee.com': userName
Password for 'https://userName@gitee.com': # 私人令牌
main
分支 (2)
main
dist
oneboot-react
/
src
/
utils
/
request.ts
oneboot-react
/
src
/
utils
/
request.ts
request.ts 4.41 KB
一键复制 编辑 原始数据 按行查看 历史
石桥 提交于 2022年06月18日 19:32 +08:00 . 更新
/**
* request 网络请求工具
* 更详细的 api 文档: https://github.com/umijs/umi-request
*/
import { extend } from 'umi-request';
import { notification, Modal } from 'antd';
import qs from 'qs';
import { history } from 'umi';
//这里可以做为配置,由服务端下发证书
const publicKey = `-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDlOJu6TyygqxfWT7eLtGDwajtN
FOb9I5XRb6khyfD1Yt3YiCgQWMNW649887VGJiGr/L5i2osbl8C9+WJTeucF+S76
xFxdU6jE0NQ+Z+zEdhUTooNRaY5nZiu5PgDB0ED/ZKBUSLKL7eibMxZtMlUDHjm4
gwQco1KRMDSmXSMkDwIDAQAB
-----END PUBLIC KEY-----`;
var isErrorModal = false;
type codeType = {
[propName: string]: any; //表示还有更多的属性
};
const codeMessage: codeType = {
200: '服务器成功返回请求的数据。',
201: '新建或修改数据成功。',
202: '一个请求已经进入后台排队(异步任务)。',
204: '删除数据成功。',
400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
401: '用户没有权限(令牌、用户名、密码错误)。',
403: '用户得到授权,但是访问是被禁止的。',
404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
406: '请求的格式不可得。',
410: '请求的资源被永久删除,且不会再得到的。',
422: '当创建一个对象时,发生一个验证错误。',
500: '服务器发生错误,请检查服务器。',
502: '网关错误。',
503: '服务不可用,服务器暂时过载或维护。',
504: '网关超时。',
};
/**
* 异常处理程序
*/
const errorHandler = (error: any) => {
console.log(error);
const { response } = error;
if (response && response.status) {
const errorText = codeMessage[response.status] || response.statusText;
const { status, url } = response;
notification.error({
message: `请求错误 ${status}: ${url}`,
description: errorText,
});
} else if (!response) {
notification.error({
description: '您的网络发生异常,无法连接服务器',
message: '网络异常',
});
}
return { success: false, message: '网络异常' };
// return response;
};
/**
* 用于接口传输加密使用
* @param password
*/
const encryptData = (password: string) => {
var encrypt = new JSEncrypt();
encrypt.setPublicKey(publicKey);
return encrypt.encrypt(password);
};
/**
* 配置request请求时的默认参数
*/
const headers = {
'Content-Type': 'application/x-www-form-urlencoded; charset=UTF-8',
'x-requested-with': 'XMLHttpRequest',
};
const request = extend({
//mock
prefix: window.path,
errorHandler,
headers,
// 默认错误处理
credentials: 'include', // 默认请求是否带上cookie
});
request.use(async (ctx, next) => {
// //console.log(ctx);
///api/login/account
// if('/api/login/account' === )
/* if (window.passwordEncrypt) {
if (ctx.req.url.indexOf('account') > 0) {
const body = qs.parse(<string>ctx.req.options.body || '');
let { password } = body;
const timestamp = new Date().getTime().toString();
if (password) {
password = encryptData(`${password}|${timestamp}`);
}
body.password = password;
body.timestamp = timestamp;
ctx.req.options.body = qs.stringify(body);
}
} */
await next();
const { res } = ctx;
// //console.log(res);
const { success = false } = res;
if (!success) {
// console.log(res);
// 对异常情况做对应处理
if ('401' === res.code) {
if (!isErrorModal) {
isErrorModal = true;
Modal.error({
title: '访问失败',
content: '您的会话已过期,需要重新登录',
onOk() {
isErrorModal = false;
//window.location = response.url;
//TODO 这里应该是通过配置来的,不同的场景下,跳转的入口应该是不一样的
history.push('/login');
/* window.location.reload();
return new Promise(resolve => {
setTimeout(resolve, 1);
}); */
},
});
}
}
}
});
export default request;
/**
* 提交增加的数据
*/
export async function post(module: string, params: any, config?: any) {
return request.post(module, {
body: qs.stringify(params),
});
}
export async function get(module: string, params: any, config?: any) {
//request.patch
return request.get(module, {
params,
});
}
Loading...
举报
举报成功
我们将于2个工作日内通过站内信反馈结果给你!
请认真填写举报原因,尽可能描述详细。
请选择举报类型
取消
发送
误判申诉

此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。

如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。

取消
提交

简介

OneBoot UI 组件库
暂无标签
MIT
使用 MIT 开源许可协议
取消

发行版

暂无发行版

贡献者

全部

近期动态

不能加载更多了
编辑仓库简介
简介内容
主页
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
TypeScript
1
https://gitee.com/codeaone/oneboot-react.git
git@gitee.com:codeaone/oneboot-react.git
codeaone
oneboot-react
oneboot-react
main
点此查找更多帮助

搜索帮助

评论
仓库举报
回到顶部
登录提示
该操作需登录 Gitee 帐号,请先登录后再操作。
立即登录
没有帐号,去注册

AltStyle によって変換されたページ (->オリジナル) /