背景:
圖中是瀏覽器渲染的表結構,我們的節目ID在表結構中作爲主鍵ID,是不會存在重複的情況的,那到底是怎麼造成的呢?
邏輯梳理:
經過排查返回值,我們發現NetWork中的 preview 與我們頁面所展示出來的值一致,主鍵ID是錯誤的🙅♂️,
我在js中設置debug,可以看到拿到的返回值和 preview 的一致,主鍵ID是錯誤的🙅♂️,但是...
NetWork中的 Response與頁面展示的值不一致,但是卻是正確的主鍵ID🙆,
我使用Postman來進行請求,發現請求值也是正確的🙆,那麼問題就出現在瀏覽器上了!!
經過查閱資料,得知:
"由於JavaScript中Number類型的自身原因,並不能完全表示Long型的數字,在Long長度大於17位時會出現精度丟失的問題,超過17位的部分瀏覽器會轉換爲0顯示"
後端請求返回的主鍵id爲19位的Long型的數值,js中的Number類型只能解析其中的17位,其他幾位補位爲0,就會造成如上問題。
問題解決:
1、後臺把long型改爲String類型(推薦🙆)
2、前端支持long型(不推薦🙅♂️)