Enctype是指定將數據回發到服務器時瀏覽器使用的編碼類型,其編碼類型有以下三種
? ? ? ? 這是通過表單發送數據時默認的編碼類型。我們沒有在from標簽中設置enctype屬性時默認就是application/x-www-form-urlencoded類型的。application/x-www-form-urlencoded編碼類型會把表單中發送的數據編碼為名稱/值對。這是標準的編碼格式。當表單的ACTION為POST的時候,瀏覽器把form數據封裝到http body中,然后發送到服務器。當表單的ACTION為GET的時候,application/x-www-form-urlencoded編碼類型會把表單中發送的數據轉換成一個字符串(name=coderbolg&key=php),然后把這個字符串附加到URL后面,并用?分割,接著就請求這個新的URL。當我們通過POST方式向服務器發送AJAX請求時最好要通過設置請求頭來指定為application/x-www-form-urlencoded編碼類型。方法是在xmlobject.open()方法之后添加
xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
不然服務器會接收不到POST過來的數據。
二、 multipart/form-data
? ? ? ? 這個是專門用來傳輸特殊類型數據的,如我們上傳的非文本的內容,比如圖片或者MP3等。這種編碼類型不對字符編碼,數據通過二進制的形式傳送到服務器端,這時如果用request是無法直接獲取到相應表單的值的,而應該通過stream流對象,將傳到服務器端的二進制數據解碼,從而讀取數據。
三、 text/plain
? ? ? ? 數據以純文本形式進行編碼,其中不含任何控件或格式字符。