iT邦幫忙

0

為什麼我的FormData 進入不了後端?

  • 分享至 

  • xImage

這幾天一直在測試利用ajax搭配後端API上傳檔案,很多paper,試了很多遍,依照我目前能想到的問題點逐一排除錯誤,但是還是只有顯示null,想請各位大神幫幫忙。

html部分
https://ithelp.ithome.com.tw/upload/images/20190926/20120806lDxg3kTSgq.png

ajax部分
https://ithelp.ithome.com.tw/upload/images/20190926/20120806NcyVvJzSAA.png

Controller部分
https://ithelp.ithome.com.tw/upload/images/20190926/201208066sJ9ETun6t.png

console部分
https://ithelp.ithome.com.tw/upload/images/20190926/20120806v3wF2zpT9a.png

看更多先前的討論...收起先前的討論...
fillano iT邦超人 1 級 ‧ 2019-09-26 14:52:00 檢舉
https://stackoverflow.com/questions/5392344/sending-multipart-formdata-with-jquery-ajax
fillano iT邦超人 1 級 ‧ 2019-09-26 14:55:49 檢舉
把form直接傳給FormData呢?new FormData($('#add_data')[0]);這樣
dragonH iT邦超人 5 級 ‧ 2019-09-26 14:56:52 檢舉
建議看一下你 browser network 那頁

看到底送出去什麼東西
曉楓 iT邦新手 5 級 ‧ 2019-09-26 15:44:44 檢舉
@fillano 我有試過囉~但結果沒有變....
曉楓 iT邦新手 5 級 ‧ 2019-09-26 15:47:20 檢舉
@dragonH browser network那頁是空的...
dragonH iT邦超人 5 級 ‧ 2019-09-26 15:49:36 檢舉


不是很懂你的意思

如果你是說完全沒有東西的話

你要開著 console 再送一次
fillano iT邦超人 1 級 ‧ 2019-09-26 16:15:31 檢舉
ajax有兩個參數要設為false: processData跟contentType。
fillano iT邦超人 1 級 ‧ 2019-09-26 16:22:27 檢舉
前一個沒設,jquery會因為無法處理data而產生錯誤。後一個沒設,我猜server會收到錯誤的header,以至於沒處理multipart/form-data。
曉楓 iT邦新手 5 級 ‧ 2019-09-26 16:27:11 檢舉
@fillano 我兩個都有設fales 喔
曉楓 iT邦新手 5 級 ‧ 2019-09-26 16:30:47 檢舉
@dragonH 有開著送喔...
dragonH iT邦超人 5 級 ‧ 2019-09-26 16:42:38 檢舉
如果你指的是 network 那頁空白

是指那頁 完全沒 http request 的紀錄的話

那就代表你完全沒有發 request 出去

這大概有兩種可能

1 .

你根本沒觸發 function

2 .

你的 js code 有問題

所以 stuck 了

那麼 console 那頁有錯誤訊息嗎
fillano iT邦超人 1 級 ‧ 2019-09-26 16:48:26 檢舉
對耶,那就不知道了。我用寫了類似的例子來跑,並沒有問題。我看你的code也沒有看到明顯問題。
曉楓 iT邦新手 5 級 ‧ 2019-09-26 16:50:45 檢舉
@dragonH console顯示Failed to load resource: the server responded with a status of 415 ()
曉楓 iT邦新手 5 級 ‧ 2019-09-26 16:51:58 檢舉
@fillano 好的, 謝謝你
dragonH iT邦超人 5 級 ‧ 2019-09-26 16:58:18 檢舉
呃 有圖片嗎

415這個是哪裡丟出來的

另外 你的那些 alert 會觸發嗎
曉楓 iT邦新手 5 級 ‧ 2019-09-26 17:07:36 檢舉
@dragonH 已編輯console部分,
需要截alert嗎??
dragonH iT邦超人 5 級 ‧ 2019-09-26 17:13:00 檢舉
不用

內容不重要

有觸發就代表有執行那部份的 code
曉楓 iT邦新手 5 級 ‧ 2019-09-26 17:15:37 檢舉
@dragonH 可是不管是用HttpPosetedFile 或是 Request的部分....一個回415, 一個報說file = null
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答