当前位置: 首页 > article >正文

后端返回大数问题

这个问题并不难,但是在开发的时候没有注意到

  1. 后端返回了一个列表数据,包含id,这个id是一个大数,列表进入详情,需要将id传入到详情页面
  2. 详情页面内部通过id获取数据一直404,id不正确
  3. 找问题,从路由传参到请求数据发现id没有问题,然后和后端进行联调,发现后端返回的id和我获取的id不一致
  4. 实际问题产生的原因:后端返回了一个超过2的53次方的一个大数,而axios底层获取到后端原始json数据后通过JSON.parse处理,导致处理后的大数不精准了

  1. 让后端返回字符串格式
  2. 前端处理:
    1. 后端返回原始数据, 不让axios处理, 我们处理然后在交给aioxs
    2. axios他有一个配置函数transformResponse, 获取到的后端返回的原始数据json数据,在transformResponse内部通过JSONBig(json-bigint)处理后端返回的json数据,他在处理json数据的时候,会将大数处理为对象,将大数对象转为字符串使用,得到了正确的id,内部重写了toString
npm i json-bigint
import jsonBig from 'json-bigint'

const JSONBig = jsonBig({ storeAsString: true })

transformResponse: [
  function (data) {
    // 1. 找到了处理的时机
    try {
      return JSONBig.parse(data) // a.num + ''        155 4993 7742 
    } catch (err) {
      return data
    }
  },
],


http://www.kler.cn/a/397576.html

相关文章:

  • mindspore发布件
  • paddle表格识别数据制作
  • CentOS 源码安装FFmpeg
  • 图形 2.6 伽马校正
  • 用PHP实现一个简单的http服务器
  • 使用Python实现深度学习模型:智能食品配送优化
  • rk3399开发环境使用Android 10初体验蓝牙功能
  • 计算光纤色散带来的相位移动 matlab
  • vue.js设计与实现(霍春阳著) 章节总结
  • golang对日期格式化
  • Tailwind CSS 和 UnoCSS简单比较
  • 数据库管理-第262期 崖山:知其不可而为之(20241116)
  • 【笔记】Vue3回忆录
  • 【C语言指南】C语言内存管理 深度解析
  • aitrader双界面引擎(dash和streamlit),引入zvt作为数据获取及存储支持
  • 以太坊基础知识结构详解
  • 将大型语言模型(如GPT-4)微调用于文本续写任务
  • STM32设计井下瓦斯检测联网WIFI加Zigbee多路节点协调器传输
  • 【jvm】如何破坏双亲委派机制
  • LeetCode - #134 加油站
  • vocode Vue3项目 红色波浪线解决方案集锦
  • 丹摩征文活动|丹摩智算平台使用指南
  • 1436:数列分段II -整型二分
  • 两行命令搭建深度学习环境(Docker/torch2.5.1+cu118/命令行美化+插件),含完整的 Docker 安装步骤
  • 护眼模式浓度调整到最低
  • 【软件测试】一个简单的自动化Java程序编写