我的设置是Vue + Laravel,请求通过axios完成。
我得到的值与数据库中的值不同。
查询
User::where('role', 'partner')->select('id', 'partner')->orderBy('created_at', 'desc')->paginate(15);
数据库记录
响应网络选项卡上的axios GET请求,您可以看到这里的partner
值与数据库中的值不同,就像最后2位数被转换为更接近的第10个值,始终以0
结尾
如果我尝试直接在浏览器上打开端点,我会得到正确的值
我甚至尝试从axios请求中复制所有的头来模拟vscode rest-client上的请求,我也得到了正确的值
axios的配置如下
axios.interceptors.request.use(request => {
const token = store.getters['auth/token']
if (token) {
request.headers.common.Authorization = `Bearer ${token}`
}
const locale = store.getters['lang/locale']
if (locale) {
request.headers.common['Accept-Language'] = locale
}
// request.headers['X-Socket-Id'] = Echo.socketId()
return request
})
我不知道从哪里开始调试,只是挠头。
1条答案
按热度按时间zynd9foi1#
JavaScript有两种数字类型:数字和大整数
最常用的数字类型Number是一个64位浮点IEEE 754数字。此类型的最大精确整数值是
Number.MAX_SAFE_INTEGER
,即:九百万七千一百九九九二十五万四千七十四万零九百九十一。partner
值大于Number.MAX_SAFE_INTEGER
,因此某些操作可能无法正常工作。x == x + 1
返回true
要解决这个问题,只需使用
string
即可。