zoukankan      html  css  js  c++  java
  • 再次回顾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 POST method and setting the enctype attribute to application/x-www-form-urlencoded (default);
    • using the POST method and setting the enctype attribute to text/plain;
    • using the POST method and setting the enctype attribute to multipart/form-data;
    • using the GET method (in this case the enctype attribute 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日】

  • 相关阅读:
    587 模块化开发 CommonJS规范:exports,module.exports,require细节,模块加载顺序,AMD和CMD规范
    img标签到底是行内元素还是块级元素
    File、Blob、dataURL 和 canvas 的应用与转换
    正则表达式
    什么是AVIF?如何在你的网站上使用AV1格式图像
    前端性能优化之图片懒加载
    padding-top的百分比值参考对象竟是父级元素的宽度
    自动增长Textareas的最干净技巧
    用纯css模拟下雪的效果
    了解CSS基本用法和选择器知识
  • 原文地址:https://www.cnblogs.com/ch459742906/p/7113503.html
Copyright © 2011-2022 走看看