这段时间解决一个bug,从接口拿的数据,发送另一个请求时请求数据不一致,捣鼓了很长时间,就是不明白哪里出了问题。今天随便看了看preview和response,发现id居然不一样?
我的发,左眼,用来忘记你
右眼,用来记住你?
正常人谁会去注意这个?
控制台输出:
终于发现问题点了,一顿百度,最后解决。
问题原因:后端的数据返回的数据类型不是字符串类型,而是long长整型,也就是Number类型。而Js中拿到Long后会用Number类处理数值,我们知道Js的Number类型处理的数值的长度是9007199254740991 ~ -9007199254740991,也就是一个16位的整数,超过的会补0显示
这里可以看到16位的后面补0了。
原因找到
解决:跟后端大哥沟通一样,更改一下返回的数据类型即可。
还有一个解决思路,可以尝试一下:【解决方案】jison解决JS处理后台返回的Long型数据精度丢失_后端返回的长整形精度怎么处理-CSDN博客
从这里我们可以学习到,response中的数据才是正确的,以后拿到接口验证数据时,还是要注意一下,这两个是否不一样,将数据输出到控制台看一下。