Ajax 提交表单同时上传文件为什么报错?

一个表单,通过ajax提交,能正常插入数据,前端也能响应ajax返回的json数据弹出对应的提示框,现在加了一个选择文件的按钮,需要在提交表单的时候上传文件到服务器,并返回文件路径一起存入数据库,但是图片和表单数据都上传成功了,返回的 json 数据直接被输出了(相关报错见图片),前端没有响应 json 的值弹出提示框,调试了一天了,求大神指点...
file
file
下面是laravel的错误日志:
file

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

Ajax 上傳檔案要用 FormData
建議可以參考以下流程設計此表單:

  1. 先開一支 API 專門用來上傳檔案
  2. 圖片被選擇時,上傳至(1)API,並取得回傳檔案路徑
  3. 將路徑填回表單
  4. 送出表單時的 AJAX 就可以用 JSON 格式傳送了

這樣的作法邏輯上較清晰,且可在多個地方共用檔案上傳,不用將上傳邏輯分散在每個 Controller 中

5年前 评论
讨论数量: 4

能看看你 Ajax 提交的內容嗎
看起來是表單中的 story 沒有檔案

5年前 评论

@leochien
是的,$request->file('story')确实是空的,这是怎么回事呢?
file

5年前 评论

Ajax 上傳檔案要用 FormData
建議可以參考以下流程設計此表單:

  1. 先開一支 API 專門用來上傳檔案
  2. 圖片被選擇時,上傳至(1)API,並取得回傳檔案路徑
  3. 將路徑填回表單
  4. 送出表單時的 AJAX 就可以用 JSON 格式傳送了

這樣的作法邏輯上較清晰,且可在多個地方共用檔案上傳,不用將上傳邏輯分散在每個 Controller 中

5年前 评论

@leochien
终于搞定了,非常感谢~

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!