调用相同接口,postman和浏览器Preview数据不一致的问题

如题所述

第1个回答  2022-06-13
前后端联调过程中发现的问题。

情况:系统登录后返回的id值,存在浏览器缓存中,后面使用这个id值作为参数传回后端,后端返回信息说这个id不存在。跟后端说明这个情况的时候,他们拿着postman请求结果说接口没有写错,是我数据传错了,我拿着浏览器Preview里面的数据和他们说后端传过来的id值就是这个。然后我使用postman调用接口,得到以下结果:

而浏览器Preview中的结果:

浏览器拿到的id和后端传过来的id不一致,再使用这个id作为去后端请求数据肯定是拿不到结果的。

为什么postman和浏览器Preview里面id值会差1?

原因:后端使用的是Java,Java的Long型整数超过了JS可以精确表示的大数范围,这就导致了可能会出现精度丢失的情况,JavaScript中可以安全使用的最大整数和最小整数可以通过Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER得到。

解决方案:让后端将id的值以字符串的类型传到前端,这样前端就能拿到正确的数据了。
大家正在搜