再次回顾post请求中的enctype
1,关于multipart/form-data,参考rfc1867
2.关于post的集中编码格式,参考MDN
A brief introduction to the submit methods
An html <form> can be sent in four ways:
- using the
POSTmethod and setting theenctypeattribute toapplication/x-www-form-urlencoded(default); - using the
POSTmethod and setting theenctypeattribute totext/plain; - using the
POSTmethod and setting theenctypeattribute tomultipart/form-data; - using the
GETmethod (in this case theenctypeattribute will be ignored).
Now, consider the submission of a form containing only two fields, named foo and baz. If you are using the POST method the server will receive a string similar to one of the following three examples, depending on the encoding type you are using:
-
Method:
POST; Encoding type:application/x-www-form-urlencoded(default):Content-Type: application/x-www-form-urlencoded foo=bar&baz=The+first+line.%0D%0AThe+second+line.%0D%0A -
Method:
POST; Encoding type:text/plain:Content-Type: text/plain foo=bar baz=The first line. The second line. -
Method:
POST; Encoding type:multipart/form-data:(上传文件会用到)Content-Type: multipart/form-data; boundary=---------------------------314911788813839 -----------------------------314911788813839 Content-Disposition: form-data; name="foo" bar -----------------------------314911788813839 Content-Disposition: form-data; name="baz" The first line. The second line. -----------------------------314911788813839--
However, if you are using the GET method, a string like the following will be simply added to the URL:
?foo=bar&baz=The%20first%20line.%0AThe%20second%20line.
关于multipart/form-data有个小插曲,就是在使用Jquery 的Formdata对象进行ajax上传文件时,ajax有个content-type的设置,默认是application/x-www-form-urlencoded,但是,如果上传文件,必须使用multipart/form-data,
而且必须设定分隔符,所以,此项不需要设置(值为false),然后通过HTML表单创建FormData对象即可(var formData = new FormData(someFormElement))
关于
【本文由搜狐账号“章鱼猫”发布,2017年07月04日】

浙公网安备 33010602011771号