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

Enctype是指定将数据回发到server时浏览器使用的编码类型。其编码类型有下面三种


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

原文地址:https://www.cnblogs.com/blfshiye/p/5054761.html