axios解决后端传来的id太长导致精度丢失(超过16位的数字会酿成0000)的问 ...

打印 上一主题 下一主题

主题 814|帖子 814|积分 2442

 办法一:让后端把id传成字符串范例;
办法二:用jsonBig转换为bigInt数字范例:
1.在项目根目次打开下令行输入下令安装jsonBig插件:
  1. npm install json-bigint@1.0.0
复制代码
2.在封装的哀求中使用插件,核心是在创建sxios实例的时候如果transformResponse这个配置项,可以拦截接口返回的内容进行处理(因为默认会使用JSON.parse()解析从后端的来的数据),再用json-bigint插件把长范例数字解析成字符串,解析失败就代表没有长数字可解析,使用JSON.parse()解析
  1. import axios from 'axios';
  2. import jsonBig from 'json-bigint'
  3. //利用axios对象的方法create,去创建一个axios实例
  4. const api = axios.create({
  5.     //基础路径
  6.     baseURL: "http:xxxxxxxxx", // 后端地址
  7.     timeout: 60000, // 请求超时时间
  8.     transformResponse: [function (data) {//transformResponse这个配置项可以拦截接口返回的内容进行处理
  9.         try {
  10.             // 如果大数字类型转换成功则返回转换的数据结果
  11.             return jsonBig.parse(data);
  12.         } catch (err) {
  13.             // 如果转换失败,代表没有长数字可转,正常解析并返回
  14.             return JSON.parse(data)
  15.         }
  16.     }]
  17. })
  18. //最后一步 暴露出去实例导出
  19. export default api
复制代码
3.使用:
  1. 使用的时候用id.toString()方法把bigInt类型的数字变成字符串类型就能使用了
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户云卷云舒

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表