请求拦截 umi-request , process.env

本文详细介绍了如何在umi-request中设置请求拦截器,以实现统一的错误处理和请求增强功能。同时,深入探讨了process.env在Node.js和前端应用中的作用,解释了如何利用它来管理环境变量,确保不同环境中代码行为的一致性和安全性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/**
 * request 网络请求工具
 * 更详细的api文档: https://bigfish.alipay.com/doc/api#request
 */
import {
    extend } from 'umi-request';
import {
    notification, Modal, message } from 'antd';
import router from 'umi/router';
import {
    getToken,removeToken }  from '@/utils/cookies';
import cloneDeep from 'lodash/cloneDeep';
import sysConfig from '@/sysConfig';

const codeMessage = {
   
  200: '服务器成功返回请求的数据。',
  201: '新建或修改数据成功。',
  202: '一个请求已经进入后台排队(异步任务)。',
  204: '删除数据成功。',
  400: '发出的请求有错误,服务器没有进行新建或修改数据的操作。',
  401: '用户没有权限(令牌、用户名、密码错误)。',
  403: '用户得到授权,但是访问是被禁止的。',
  404: '发出的请求针对的是不存在的记录,服务器没有进行操作。',
  406: '请求的格式不可得。',
  410: '请求的资源被永久删除,且不会再得到的。',
  422: '当创建一个对象时,发生一个验证错误。',
  500: '服务器发生错误,请检查服务器。',
  502: '网关错误。',
  503: '服务不可用,服务器暂时过载或维护。',
  504: '网关超时。',
};

/**
 * 异常处理程序
 */
const errorHandler = error => {
   
  console.log(error);
  const {
    response = {
   } } = error;
  const errortext = codeMessage[response.status
Ant Design Pro 是基于 Ant Design 开发的企业级后台管理系统框架,它处理跨域问题通常会利用内置的 request 组件以及 proxy 配置。 1. **请求拦截器 (Request Interceptor)**: 在 Ant Design Pro 中,你可以通过配置 request 的 interceptors 功能,在发送所有请求之前添加自定义的逻辑,包括设置默认的 headers、处理 token 等。如果你需要处理跨域,可以在拦截器中添加对 CORS 的支持,比如修改请求头 `withCredentials` 或者设置允许的域名 (`Access-Control-Allow-Origin`)。 ```javascript // 在umi.config.js或者global.js中的请求配置 import axios from 'axios'; axios.defaults.withCredentials = true; axios.interceptors.request.use(config => { if (!config.crossDomain) { config.headers.common['X-Requested-With'] = 'XMLHttpRequest'; // 为了某些服务器识别这是AJAX请求 if (process.env.NODE_ENV === 'production') { config.headers.common['Access-Control-Allow-Origin'] = '*'; // 开发环境允许跨域,生产环境需替换为你实际服务的域名 } } return config; }, error => Promise.reject(error)); ``` 2. **Proxy**: 如果后端 API 接口不允许直接从浏览器访问(如本地开发环境),可以启用 Node.js 作为代理服务器。在项目根目录下创建一个 `proxy.conf.json` 文件,配置文件内容类似于: ```json { "/api": { "target": "http://localhost:8000", // 你需要转发到的实际后端API地址 "changeOrigin": true, "pathRewrite": { "^/api" : "" } // 将路径前缀"/api"替换为空字符串,以便于URL匹配 } } ``` 当你向 `/api` 前缀的路径发起请求时,这些请求会被转发到指定的服务器地址。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值