axios API GET请求获取与数据库记录中的内容不同的结果

w6mmgewl  于 2022-11-05  发布在  iOS
关注(0)|答案(1)|浏览(178)

我的设置是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
})

我不知道从哪里开始调试,只是挠头。

zynd9foi

zynd9foi1#

JavaScript有两种数字类型:数字和大整数
最常用的数字类型Number是一个64位浮点IEEE 754数字。此类型的最大精确整数值是Number.MAX_SAFE_INTEGER,即:九百万七千一百九九九二十五万四千七十四万零九百九十一。
partner值大于Number.MAX_SAFE_INTEGER,因此某些操作可能无法正常工作。x == x + 1返回true
要解决这个问题,只需使用string即可。

相关问题