| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- import axios from 'axios';
- let baseURL: string;
- if (process.env.NODE_ENV === 'production') {
- baseURL = '';
- } else {
- baseURL = process.env.NEXT_PUBLIC_DEV_BASE_URL as string;
- }
- // 拦截器
- axios.interceptors.response.use(
- (response) => {
- return response;
- },
- (error) => {
- return Promise.reject(error);
- }
- );
- axios.interceptors.request.use(
- (config) => {
- config.headers['Accept'] = 'application/json';
- config.baseURL = baseURL;
- // config.timeout = 10000;
- return config;
- },
- (error) => {
- return Promise.reject(error);
- }
- );
- export function requests<T>(
- url: string,
- option: {
- method: 'post' | 'get' | 'put' | 'delete';
- params?: { [key: string]: any };
- data?: { [key: string]: any };
- headers?: { [key: string]: any };
- requestType?: 'json' | 'form';
- timeout?: number;
- }
- ) {
- if (!option.requestType) {
- option.requestType = 'json';
- }
- return new Promise<T>((resolve, reject) => {
- const Content_Type =
- option.requestType == 'json'
- ? 'application/json;charset=UTF-8'
- : 'application/x-www-form-urlencoded;charset=UTF-8';
- axios<T>({
- timeout: option.timeout,
- url: baseURL + url,
- method: option.method,
- params: option.params,
- data: option.data,
- headers: {
- 'Content-Type': Content_Type,
- ...option.headers
- }
- })
- .then((res) => {
- resolve(res.data);
- })
- .catch((err) => {
- reject(err);
- });
- });
- }
- export default requests;
|