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

React+Axios+Laravel上传.NEF/.CR3文件无响应问题求助

问题分析与修复方案

核心问题

NEF/CR3这类RAW格式文件体积远大于JPG/PNG,浏览器控制台出于性能或显示限制,会自动隐藏大体积请求的载荷和响应内容,但实际请求已成功完成(返回200)。同时也存在Axios配置、Laravel响应处理的潜在优化点,以下是针对性修复:


修复步骤

1. 移除手动设置的multipart/form-data请求头

Axios上传FormData时会自动生成带正确boundary分隔符的multipart/form-data头,手动设置反而会破坏格式,导致大文件请求的控制台解析异常。修改请求代码:

const UploadFiles = async (data, prefix, config) => {
  config['headers'] = {
    "Authorization": "Bearer " + (Cookies.get("token") ?? ""),
  }
  return await axios.post(baseApiURL + prefix, data, config);
};

2. 让Laravel返回结构化响应

若后端未返回明确的响应数据,浏览器可能因内容为空或格式问题不显示响应。确保Laravel控制器上传方法返回JSON响应:

public function upload(Request $request)
{
    // 文件存储逻辑
    $file = $request->file('file');
    $path = $file->store('uploads');

    // 返回结构化响应
    return response()->json([
        'status' => 'success',
        'file_path' => $path,
        'message' => '文件上传完成'
    ], 200);
}

3. 关闭浏览器大请求内容隐藏限制

Chrome、Firefox等浏览器默认会隐藏大体积请求的载荷和响应,可手动关闭:

  • 打开控制台Network标签,找到目标请求,若Response页提示无数据,进入控制台设置(F1)
  • 在Network选项中取消勾选Hide large request bodies

4. 延长Axios超时时间

RAW文件体积大,默认超时可能导致响应传输中断,在配置中延长超时:

const UploadFiles = async (data, prefix, config) => {
  config['headers'] = {
    "Authorization": "Bearer " + (Cookies.get("token") ?? ""),
  };
  // 延长至30秒,可根据文件大小调整
  config['timeout'] = 30000;
  return await axios.post(baseApiURL + prefix, data, config);
};

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 01:27:07