6***@qq.com
6***@qq.com
  • 发布:2020-06-18 18:45
  • 更新:2023-02-23 09:57
  • 阅读:2307

【报Bug】uni.request 返回值类型为long的时候存在精度丢失问题

分类:uni-app

产品分类: uniapp/小程序/微信

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 2004

HBuilderX类型: 正式

HBuilderX版本号: 2.7.13

第三方开发者工具版本号: v1.03.2005140

基础库版本号: 1.0

项目创建方式: HBuilderX

示例代码:
uni.request({  
        url: config.api + url,  
        data: params,  
        method: 'POST',  
        header,  
    }).then(response => {  
        console.log(response);  
    }).catch(error => {  

        Tips.loaded();  
        reject(error);  
    })

操作步骤:

预期结果:

auditor: {id: 772933645013891112, number: "ID-000005", name: {…}, masterid: 772933645013891112, phone: "15607215160"}

实际结果:

auditor: {id: 772933645013891100, number: "ID-000005", name: {…}, masterid: 772933645013891100, phone: "15607215160"}

bug描述:

uni.request 请求的返回值 当类型为long 且超长时 会存在精度丢失问题,大于16位,最后两位会变成00 参考下面返回值

2020-06-18 18:45 负责人:无 分享
已邀请:
y***@163.com

y***@163.com

临时的办法:拿到requestTask ,处理response使用json-bigint

getTask: task => {  
    let xhr = task._xhr;  
    xhr.onreadystatechange = function() {  
    if (xhr.readyState == 4 && xhr.status == 200) {                           
      let res = JSONbigString.parse(xhr.response);                            
      _this.list = res.list;  
    }  
  };  
}
  • [已删除]

    ReferenceError: Can't find variable: JSONbigString __ERROR 这个是什么情况 大佬

    2020-12-28 20:35

[已删除]

[已删除]

求指导 我也遇见问题了

1***@qq.com

1***@qq.com - 23

我也遇到了,解决办法是在后端以string类型返回,前后端都是我写,所以没障碍。

弈凌

弈凌 - yl-yue

@DCloud_UNI_YRJ 你好,这个精度丢失的问题仍然存在,官方是否可以解决下,或给个文档说明下此问题解决方案。毕竟让后端返回字符串是不合理的要求,也有可能是三方系统对接。

  • DCloud_UNI_GSQ

    js的json解析的限制,可以参考其他人的回复,使用三方库解析json

    2023-02-23 17:02

  • 弈凌

    回复 DCloud_UNI_GSQ: 你好,请问有没有什么全局拦截的办法,而不是在当前请求中处理。

    2023-02-23 19:02

  • DCloud_UNI_GSQ

    回复 8***@qq.com: 你的另外一篇帖子已有

    2023-02-23 20:16

要回复问题请先登录注册