对form表单post的研究

来源:互联网 发布:淘宝男士防晒衣 编辑:程序博客网 时间:2024/06/08 11:51

========================get方式提交form

默认方式为get,表单元素必须要有name属性,最后各个表单元素的值(如果是file类型,值为文件名)会拼接成get方式的URL(带有querystring)。
如果action属性的URL原来带有querystring,没用会被替换。

========================post 方式提交form

============不上传文件时(假设只有两个文本框,name分别为t1,t2)

application/x-www-form-urlencoded  方式    拼接了一个querystring格式(t1=abc&t2=123)的字符串,放在body中发送。

text/plain 方式  也是拼接了一个类似querystring格式的字符串,把&符号换成换行符,就这点区别,所以一般不用这种方式。

multipart/form-data 方式  拼接了如下这个字符串

------WebKitFormBoundaryoN4c6mtJxYsthawZ
Content-Disposition: form-data; name="t1"

as
------WebKitFormBoundaryoN4c6mtJxYsthawZ
Content-Disposition: form-data; name="t2"

1123
------WebKitFormBoundaryoN4c6mtJxYsthawZ--

============只上传文件时(假设只有两个文件框,name分别为t1,t2)注意:一个文件框加 multiple="true"属性就可以一次选多个,相当于
多个文件框

application/x-www-form-urlencoded  方式   每个文件框只能选一个文件,然后拼接成(t1=a.jpg&t2=b.jpg)格式提交,可以看到只有文件名。

text/plain 方式  每个文件框只能选一个文件,上面的&变成换行符  很类似

multipart/form-data 方式  每个文件框只能选一个文件,在浏览器看到的内容如下,隐藏了数据体,而node后台看到了数据体(在
Content-Type: image/jpeg 后面)


------WebKitFormBoundaryr4RCxmNfojDmqUlc
Content-Disposition: form-data; name="t1"; filename="avatar.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryr4RCxmNfojDmqUlc
Content-Disposition: form-data; name="t2"; filename="avatar2.jpg"
Content-Type: image/jpeg


------WebKitFormBoundaryr4RCxmNfojDmqUlc--

0 0