首页 > 代码库 > form表单标签的enctype属性的作用

form表单标签的enctype属性的作用

Enctype是指定将数据回发到服务器时浏览器使用的编码类型,其编码类型有以下三种


一、 application/x-www-form-urlencoded
        这是通过表单发送数据时默认的编码类型。我们没有在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
        数据以纯文本形式进行编码,其中不含任何控件或格式字符。