vue使用axios 从后端获取回来数据 Number精度丢失 解决办法

最近项目上遇到个问题:我这从后端接收数据,然后拿着数据传到后端的对应位置。
报错了。。。
经过排查 后端发给我的时候数据是Number 长度为21 数据正常 我前端接到数据后却最后2位变成00
后端将Number类型改用字符串类型传给我 问题解决。
问题原因是在于后端发送数据时为方便传送数据将数据JSON.stringify()化,而前端接到数据后,需要将数据解析,而在解析的过程中 会导致Number超过 19位后精度丢失 变成上述尾部变成00问题,
而解决办法是:
使用JSONbig 插件 原理自行百度 鄙人理解大体是在JSON解析的时候做下数据处理 是转string还是加大精度长度我还没有细细研究 - -

安装依赖
npm i JSONbig --save
在axios.create添加

const service = axios.create({
    baseURL: devIp + '', // 测试IP
    timeout: 100000, // request timeout,
//  这是核心  
    transformResponse: [function (data) {
        try {
            // 如果转换成功则返回转换的数据结果
            return JSONbig.parse(data)
        } catch (err) {
            // 如果转换失败,则包装为统一数据格式并返回
            return {
                data
            }
        }
    }]
});

路径大概是:

image.png

文章参考于:https://www.wanjunshijie.com/note/vue/618.html

你可能感兴趣的:(vue使用axios 从后端获取回来数据 Number精度丢失 解决办法)