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

Laravel部署Heroku后Ajax文件上传遇301/302重定向问题求助

嘿,我之前在Heroku部署Laravel应用时也碰到过类似的Ajax上传重定向问题,给你几个实际排查的方向,应该能解决:

排查步骤
  • 先检查APP_URL环境变量:Heroku默认强制HTTPS,要是你的APP_URL配置成了HTTP地址(比如http://xxx.herokuapp.com),Laravel会自动触发HTTPS重定向,直接打断你的Ajax请求。去Heroku的「Settings」->「Config Vars」里把APP_URL改成完整的HTTPS地址(比如https://your-app-name.herokuapp.com)试试。

  • 确认控制器的响应逻辑:别小看这个,我之前就是不小心在上传成功后用了redirect()->back()而不是response()->json()。仔细检查你的上传处理方法,确保最后是返回JSON响应,比如:

    return response()->json([
        'status' => 'success',
        'message' => '文件上传完成',
        'file_path' => $file->url()
    ]);
    

    另外,如果有异常捕获逻辑,别直接重定向,要返回JSON格式的错误信息,比如:

    catch (\Exception $e) {
        return response()->json(['error' => $e->getMessage()], 500);
    }
    
  • 检查文件上传大小限制:Heroku的PHP默认上传限制可能比较小,要是你上传的文件超过了upload_max_filesize或post_max_size,服务器会返回错误,而Laravel的默认错误处理可能会把它转成首页重定向。去Heroku的Config Vars里添加这两个变量:

    • PHP_UPLOAD_MAX_FILESIZE=10M(根据你的需求调整大小)
    • PHP_POST_MAX_SIZE=10M
  • 验证存储驱动配置:如果Heroku上用了云存储(比如AWS S3),一定要确认存储相关的环境变量配置正确——比如AWS密钥、桶名、区域这些。要是存储失败,你的代码必须捕获异常并返回JSON,不能让框架自动重定向。

  • 用Heroku日志定位问题:这是最有效的方法!运行heroku logs --tail命令实时查看日志,当你发起上传请求时,盯着日志看:有没有走到控制器的代码?有没有抛出异常?重定向是哪个环节触发的?日志里的信息能帮你精准定位问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:42:44