調(diào)用相同接口,postman和瀏覽器Preview數(shù)據(jù)不一致的問(wèn)題

前后端聯(lián)調(diào)過(guò)程中發(fā)現(xiàn)的問(wèn)題。

情況:系統(tǒng)登錄后返回的id值,存在瀏覽器緩存中,后面使用這個(gè)id值作為參數(shù)傳回后端,后端返回信息說(shuō)這個(gè)id不存在。跟后端說(shuō)明這個(gè)情況的時(shí)候,他們拿著postman請(qǐng)求結(jié)果說(shuō)接口沒(méi)有寫(xiě)錯(cuò),是我數(shù)據(jù)傳錯(cuò)了,我拿著瀏覽器Preview里面的數(shù)據(jù)和他們說(shuō)后端傳過(guò)來(lái)的id值就是這個(gè)。然后我使用postman調(diào)用接口,得到以下結(jié)果:


postman調(diào)用結(jié)果

而瀏覽器Preview中的結(jié)果:


Preview數(shù)據(jù)

瀏覽器拿到的id和后端傳過(guò)來(lái)的id不一致,再使用這個(gè)id作為去后端請(qǐng)求數(shù)據(jù)肯定是拿不到結(jié)果的。

為什么postman和瀏覽器Preview里面id值會(huì)差1?

原因:后端使用的是Java,Java的Long型整數(shù)超過(guò)了JS可以精確表示的大數(shù)范圍,這就導(dǎo)致了可能會(huì)出現(xiàn)精度丟失的情況,JavaScript中可以安全使用的最大整數(shù)和最小整數(shù)可以通過(guò)Number.MAX_SAFE_INTEGER和Number.MIN_SAFE_INTEGER得到。


JavaScript安全使用整數(shù)范圍

解決方案:讓后端將id的值以字符串的類(lèi)型傳到前端,這樣前端就能拿到正確的數(shù)據(jù)了。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容