请求封装完成

dev
陈博文 3 years ago
parent cd80917350
commit 1b4482ef34

@ -1,10 +1,23 @@
import styles from './index.less';
import { message } from 'antd';
import Fetch from '@/utils/fetch';
import { useEffect } from 'react';
export default function IndexPage() {
console.log(22);
useEffect(() => {
getData();
}, []);
const getData = async () => {
const res = await Fetch('/openi/resource/clickOpenResource', {
method: 'post',
});
console.log(res);
};
return (
<div>
<h1 className={styles.title}>Page index</h1>
<h1 onClick={() => message.info(2222)} className={styles.title}>
Page index
</h1>
</div>
);
}

@ -0,0 +1,80 @@
/**
* request
* api : https://github.com/umijs/umi-request
*/
import { extend } from 'umi-request';
import { notification } from 'antd';
import publicUrl from '@/utils/url';
// import { history } from 'umi';
const codeMessage: any = {
200: '服务器成功返回请求的数据。',
201: '新建或修改数据成功。',
202: '一个请求已经进入后台排队(异步任务)。',
204: '删除数据成功。',
400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
401: '用户没有权限(令牌、用户名、密码错误)。',
403: '用户得到授权,但是访问是被禁止的。',
404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
406: '请求的格式不可得。',
410: '请求的资源被永久删除,且不会再得到的。',
422: '当创建一个对象时,发生一个验证错误。',
500: '服务器发生错误,请检查服务器。',
502: '网关错误。',
503: '服务不可用,服务器暂时过载或维护。',
504: '网关超时。',
};
/**
*
*/
const errorHandler = (error: any) => {
const { response } = error;
console.log(error, '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: '网络异常',
});
}
throw error;
};
/**
* request
*/
const request = extend({
errorHandler, // 默认错误处理
prefix: publicUrl, //地址
crossOrigin: true, // 开启CORS跨域
method: 'get', //默认get
credentials: 'include', // 默认请求是否带上cookie
});
// 中间件,对请求前添加 userId token 的基础参数
request.interceptors.request.use((url, options) => {
const newOptions = { ...options };
if (!(newOptions.data instanceof FormData)) {
newOptions.data = {
...newOptions.data,
// token: 'adsadsafcdscd',
};
} else {
// newOptions.data.append('token', 'adsadsafcdscd');
}
return {
url: `${url}`,
options: { ...newOptions },
};
});
export default request;

@ -0,0 +1,7 @@
const env = {
dev: 'https://testxgd.educoder.net',
build: 'https://testxgd.educoder.net',
};
console.log('当前环境:', process.env.NODE_ENV);
const url = process.env.NODE_ENV === '"development"' ? env.dev : env.build;
export default url;
Loading…
Cancel
Save