Vue中请求的响应数据preview预览和response数值不准确问题,覆盖默认js最大安全整数解决方案

分析问题原因

network中预览的id
在这里插入图片描述
network中response的id
在这里插入图片描述
数值不相符

原因

原因 js有自己的最大安全整数(相应数据数值太大,导致有误差)
js在解析数据时会自动执行 json.parse(方法)
在这里插入图片描述
通过number.MAX_SAFE_INTEGER可以查看js最大安全整数
当请求回的数据超过这个数值就会导致不准确

解决方案

下载json-bigint包来覆盖默认的json.parse方法

axios官方文档

// `transformResponse` 在传递给 then/catch 前,允许修改响应数据
  transformResponse: [function (data) {
    // 对 data 进行任意转换处理
    return data;
  }],
第一步安装 josn-bigint
npm i json-bigint

第二步 在common.js文件导入文件
import JSONBIG from 'json-bigint'

第三步 在拦截器之前,携带请求头位置添加转换配置
const instance = axios.create ({
    //响应时间5000毫秒
    timeout:5000
    //设置基地址
    baseURL='url地址'
    //转换数据响应格式,通过transformresponse==>在then和catch之前覆盖默认转换方式
    transformresponse:[data=>{
    //data是原始字符串数据
    const jsonObject = JSONBIG.parse(data)
    return jsonObject 
    }]
})

通过此方法可以解决数值不准确问题

  • 5
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值