iT邦幫忙

0

enctype 和 mimeTypes

想請問一下ajax中兩個函數(上傳)
enctypemimeTypes
這兩個差在哪裡啊?
我爬了一下文
有些是enctype: 'multipart/form-data'
有些是mimeTypes:'multipart/form-data'
找不到解釋的文章?

1 個回答

1
fillano
iT邦超人 1 級 ‧ 2016-09-16 21:58:22
最佳解答

我想你是透過jQuery來使用AJAX,所以請先用官方文件確認一下:jQuery.ajax(),請參閱下方的contentType的說明

你會混淆,是因為:

  1. HTML這一層,如果你的form要上傳檔案,必須指定form元素的enctype屬性為multipart/form-data,如果不指定,預設值就是application/x-www-form-urlencoded。請參閱標準文件:html form element attribute: enctype
  2. XMLHttpRequest這一層,要使用setReuqestHeader()來設定Content-Type標頭來傳送form的內容。為什麼要設定這個標頭呢?這就要參考HTTP1.1傳輸協定及其他RFC文件...
  3. jQuery的**$.ajax等方法,底層包裝了XMLHttpRequest,所以在他這裡會設定contentType**

所以不要混淆了。

(如果真的想看相關標準文件)

如果想看XMLHttpRequest可以做什麼,請參考:XMLHttpRequest,裡面還有怎樣使用FormDat物件的說明,這個標準隨時會更新,有些使用方式Browser不知道是否都有支援XD

以上...

fillano iT邦超人 1 級 ‧ 2016-09-16 21:59:42 檢舉

啊,有一些粗體字標錯...不過不能改,將就一下吧

我要發表回答

立即登入回答