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

Livewire文件上传报错Uncaught SyntaxError: Unexpected token < in JSON at position 0

错误原因
  • 该报错的核心逻辑是Livewire处理异步文件上传请求时,预期接收后端返回的JSON格式数据,但实际接收到的内容是HTML(开头字符为<,触发JSON解析异常)。
  • 代码层面的直接触发点是Insert方法中使用了dd($this->img)调试代码:dd()函数会直接输出HTML格式的调试内容并终止程序运行,导致Livewire无法生成标准响应结构。
  • 其他可能的触发场景:
    1. 上传文件大小超过PHP配置的upload_max_filesize、post_max_size限制,后端抛出错误页(HTML格式)
    2. Livewire存储临时上传文件的storage/app/livewire-tmp目录没有读写权限,生成临时URL时抛出异常页
    3. 中间件/路由规则拦截了Livewire的异步请求,返回了登录页、404页等HTML内容
    4. 组件Blade模板存在多个根节点,导致响应结构异常
解决方案
  • 移除Insert方法中的dd()代码,异步请求场景禁止使用dd()、dump()这类直接输出HTML的调试函数,你可以改用日志记录调试信息:
public function Insert()
{
    \Log::info('上传文件信息', (array)$this->img);
    // 后续业务逻辑
}
  • 校验PHP上传配置:修改php.ini中upload_max_filesize和post_max_size参数值大于你要上传的文件大小,修改后重启Web服务/PHP-FPM服务生效。
  • 给存储目录赋权:Linux环境执行chmod -R 755 storage保证storage目录读写权限正常,确认storage/app/livewire-tmp目录存在。
  • 确认组件Blade模板只有一个根节点,你的现有模板以<form>为唯一根节点符合要求,如果你后续修改模板不要新增同级的根元素。
  • 生产环境关闭APP_DEBUG模式,同时给文件上传逻辑增加异常捕获,避免异常内容直接输出到前端。

内容的提问来源于stack exchange,提问作者Mohammad reza Golshahi

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 10:27:03