Ant Design Pro 5 的网络请求有点复杂,只看文档不阅读源码搞不清楚到底发生了什么事情。涉及到fetch umi-request @umijs/plugin-request Ant Design Pro 5相关代码。

fetch

代替XMLHttpRequest的访问和操纵HTTP的技术。fetch最大的问题是,只有在发生网络故障时或请求被阻止时,才抛出异常;而对于 HTTP 状态码为 404 或 500 之类的情况,会认为是正常的响应,并不会抛出异常。

umi-request

基于 fetch 封装,提供诸如缓存、超时、字符编码处理、错误处理等功能。其中错误处理与开发紧密关联。

为了解决fetch在非成功状态码下,不抛出异常的情况,umi-request会判断HTTP状态码是否为2xx;如果不是,则会抛出异常。并且对fetch自己抛出的异常也进行了处理,加上了更多信息,便于后续的处理。

/src/middleware/parseResponse.js

...

.then(body => {

...

if (copy.status >= 200 && copy.status < 300) {

// 提供源response, 以便自定义处理

if (getResponse) {

ctx.res = { data: body, response: copy };

return;

}

ctx.res = body;

return;

}

throw new R

服务器返回的响应数据无效,Ant Design Pro 5 网络请求和错误处理相关推荐

  1. ant design pro v4 从后台服务器请求菜单,思路,具体代码及坑

    原文见:https://www.yuque.com/asuncat/htn2dd/wgnx0u 版本信息 ant design pro : v4.2.2 umi: v3.2.14 pro-layout ...

  2. 静态Web服务器-返回固定页面数据

    1. 开发自己的静态Web服务器 实现步骤: 编写一个TCP服务端程序 获取浏览器发送的http请求报文数据 读取固定页面数据,把页面数据组装成HTTP响应报文数据发送给浏览器. HTTP响应报文数据 ...

  3. design php 如何使用ant_Ant Design Pro如何调用接口 | Ant Design Pro渲染数据 绑定数据...

    Ant Design Pro如何调用接口 | Ant Design Pro渲染数据 绑定数据 Ant Design Pro我发现网上的资料好少,而且版本基本都是1.0的,我现在是2.0版本,好多地方都 ...

  4. java http 401_服务器返回HTTP响应代码:401,URL:https

    我正在使用Java访问HTTPS站点,该站点以XML格式返回显示内容.我在URL本身中传递了登录凭据.这是代码片段: DocumentBuilderFactory dbf = DocumentBuil ...

  5. jqgrid 服务器端验证,jqGrid获取服务服务器返回的所有数据

    当jqGrid配置的rowNum小于服务器返回的总数据量(records属性记录总数据),调用getRowData方法获取到的只是显示的部分内容,而非服务器返回的所有数据行. 要想获取jqGrid返回 ...

  6. 服务器响应401,服务器返回HTTP响应代码:401,URL:https

    我正在使用Java访问HTTPS站点,该站点以XML格式返回显示内容.我在URL本身中传递了登录凭据.这是代码片段: DocumentBuilderFactory dbf = DocumentBuil ...

  7. JS前端取得并解析后台服务器返回的JSON数据的方法

    摘要:主要介绍:使用eval函数解析JSON数据:$.getJSON()方法获得服务器返回的JSON数据 JavaScript eval() 函数 eval(string) 函数可计算某个字符串,并执 ...

  8. Ant Design Pro初探

    Ant Design Pro 浅析 脚手架下载 Ant Design Pro 浅析 菜单映射 页面渲染 界面定义数据交互 后台数据交互 脚手架下载 软件环境:NodeJS,Git 下载步骤: 1.cl ...

  9. 一、Ant Design Pro 与 Amis 结合

    文章目录 Amis Amis 安装 新增页面 关于amis样式 最终呈现界面 自由的左边栏菜单,本地Json保存菜单数据 从服务器加载 menu 菜单项保存在本地Json 进一步优化 修改app.ts ...

最新文章

  1. 关于面向对象的的设计原则的使用
  2. 内置h5 调用safari系统浏览器打开_开发教我做设计:移动端H5页面中的橡皮筋效果...
  3. 在springboot项目中如何创建子项目
  4. 编程方法学21:监听器和迭代器回顾
  5. 公关文秘专业要学计算机,文秘相关专业有哪些
  6. 面试题: 找出二叉树上任意两个结点的最近共同父结点。
  7. linux中用户信息存储在,在linux中,用于存放用户信息的两个文件是/etc/passwd和/etc/shadow。()...
  8. react 报错Assign arrow function to a variable before exporting as module default
  9. Matlab将底色改为白色
  10. 存储服务器和磁盘阵列有什么区别
  11. [转帖]Office全版本零售版转换VOL
  12. 【AI系列】1关于人工智能发展历史、资料推荐、技术体系的整理
  13. 电商运营如何打造爆品?
  14. C++无论字符串长度为多少sizeof()始终是28字节
  15. JVM内存模型及内存分配
  16. 【服务器知识】免费申请SSL证书并给网站添加证书
  17. 利用留数定理计算傅立叶变换积分
  18. bootstrap 后端模板
  19. 诚之和:元宇宙的“诸神之战” 风口还是风险
  20. 编程语言排行,C# 和 C++ 有望超越C?

热门文章

  1. 漫话地图之高精地图生产中的坐标系
  2. android 漫画加载方案,Android加载长图的多种方案分享
  3. 【图像加密】DFT变换算法
  4. 如何使用数字工厂管理系统快速找到呆滞料
  5. 2014年中国管理软件厂商集体患“互联网焦虑症”
  6. php删除数组特定元素,PHP删除数组特定元素的实现方法
  7. C++常用命名法与书写规范
  8. Python数据可视化笔记02--折线图、散点图实战
  9. AI 影评家: 用 Hugging Face 模型打造一个电影评分机器人
  10. Layui 弹出层之iframe层 获取弹出iframe层中控件值