You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Vue+Laravel项目Axios请求返回数据与数据库不一致问题

问题排查与解决步骤

1. 排查axios响应解析逻辑

axios默认自动解析JSON响应,但JavaScript的Number类型存在精度上限(超过2^53的数字会丢失精度),可能导致大数值被近似处理。

  • 先检查项目中是否修改过axios全局的transformResponse配置,是否有第三方库干扰了JSON解析。
  • 临时修改请求,手动解析响应文本验证:
axios.get('/你的接口地址', { responseType: 'text' })
  .then(res => {
    const rawData = JSON.parse(res.data);
    console.log(rawData); // 查看partner字段是否保持原始值
  })

2. 核对后端返回的字段类型

确认数据库中partner字段的类型:

  • 如果是bigint或超过16位的数值类型,JavaScript无法精确存储,需在Laravel模型中将其转为字符串返回:
// 在User模型中添加
protected $casts = [
    'partner' => 'string',
];

3. 检查前端响应拦截器

查看项目中是否存在axios.interceptors.response.use配置,确认是否有全局逻辑对partner字段做了格式化或修改。

4. 验证后端原始返回数据

在Laravel控制器中打印查询结果,确认后端输出的原始数据正确:

$users = User::where('role', 'partner')->select('id', 'partner')->orderBy('created_at', 'desc')->paginate(15);
// 日志打印,查看storage/logs下的日志文件
Log::info($users->toArray());
return $users;

如果日志中的partner值正确,问题必然出在前端解析或处理环节。

5. 对比请求头细节

再次核对axios请求与直接访问接口的请求头,包括Accept、Content-Type、Authorization等,确认是否存在遗漏的差异导致后端返回不同结果。

内容的提问来源于stack exchange,提问作者SymmetricsWeb

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 11:05:32