Enctype是指定将数据回发到server时浏览器使用的编码类型。其编码类型有下面三种
这是通过表单发送数据时默认的编码类型。我们没有在from标签中设置enctype属性时默认就是application/x-www-form-urlencoded类型的。application/x-www-form-urlencoded编码类型会把表单中发送的数据编码为名称/值对。这是标准的编码格式。当表单的ACTION为POST的时候。浏览器把form数据封装到http body中,然后发送到server。
当表单的ACTION为GET的时候。application/x-www-form-urlencoded编码类型会把表单中发送的数据转换成一个字符串(name=coderbolg&key=php),然后把这个字符串附加到URL后面。并用?切割,接着就请求这个新的URL。当我们通过POST方式向server发送AJAX请求时最好要通过设置请求头来指定为application/x-www-form-urlencoded编码类型。
方法是在xmlobject.open()方法之后加入
xmlHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded")不然server会接收不到POST过来的数据。
二、 multipart/form-data
这个是专门用来传输特殊类型数据的。如我们上传的非文本的内容,比方图片或者MP3等。这样的编码类型不正确字符编码,数据通过二进制的形式传送到server端,这时假设用request是无法直接获取到对应表单的值的。而应该通过stream流对象,将传到server端的二进制数据解码,从而读取数据。
三、 text/plain
数据以纯文本形式进行编码。当中不含不论什么控件或格式字符。