我们知道在通过POST方式向服务器发送AJAX请求时最好要通过设置请求头来指定为application/x-www-form-urlencoded编码类型。知道通过表单上传文件时必须指定编码类型为"multipart/form-data"。而text/plain是我们在做纯文本传输时防止接收数据时出现编码混乱而设置的。可是我一直没有搞清楚为什么要这么设置。后来查了些资料才找到了三者的区别。

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()方法之后添加

xmlobject.setRequestHeader("Content-Type","application/x-www-form-urlencoded")

不然服务器会接收不到POST过来的数据。

multipart/form-data

这个是专门用来传输特殊类型数据的,如我们上传的非文本的内容,比如图片或者MP3等。multipart/form-data编码类型会把表单中的发送的数据编码为一条消息,页面上每个表单控件对应消息中的一部分。当表单中有file类型控件并希望它正常工作的话(废话吧)就必须设置成multipart/form-data类型,浏览器会把整个表单以控件为单位分割,并为每个部分加上Content-Disposition(form-data或者file),Content-Type(默认为text/plain),name(控件 name)等信息,并加上分割符(boundary)。

text/plain

数据以纯文本形式进行编码,其中不含任何控件或格式字符。没有什么好说的。

application/x-www-form-urlencoded multipart/form-data text/plain 的区别和作用相关推荐

  1. 编码 data:text/html;c,关于 Data URI Scheme -- data:image/jpg;base64

    转载一篇大神的文章 大家可能注意到了,网页上有些图片的src或css背景图片的url后面跟了一大串字符,比如: data:image/jpeg;base64,/9j/4QAYRXhpZgAASUkqA ...

  2. data:text/html firefox钓鱼,JS DataURL 整理(一)

    一.初识Data URL 数据URL是带有前缀的URL,data:可以将小文件直接嵌入文档中. data URL是一种特殊格式的url,它的前缀是data: data URL允许内容的创建者将小文件嵌 ...

  3. 编码 data:text/html;c,[网页设计]图片base64编码利器:在线 Data URI 生成工具 – Duri.me...

    这篇文章介绍一款在线的图片 base64 编码利器 - Duri.me.data URI 图片是 base64编码的图片文件,可以嵌入到 HTML 或者 CSS 文件中,能够减少 HTTP 请求,提高 ...

  4. 编码 data:text/html;c,javascript中Data URI使用详解

    Data URI,不是URL URL是uniform resource locator的缩写,在web中的每一个可访问资源都有一个URL地址,例如图片,HTML文件,js文件以及style sheet ...

  5. data:text/html;c,html image -- data:image/png;base64

    1,  data:image/png;base64 能够把上面 src 中的url 直接copy到浏览器地址栏中. Data URI scheme是在RFC2397中定义的.目的是将一些小的数据.直接 ...

  6. IllegalArgumentException:@Body parameters cannot be used with form or multi-part encoding

    使用retrofit时报错IllegalArgumentException:@Body parameters cannot be used with form or multi-part encodi ...

  7. html form半透明,HTML——form

    国色天香:Form表单的基本使用 form表单:用来接收用户输入信息,表单中可以包含input标签(我们将会在后面详细讲解),下面学习一下form表单的属性. action :设置URL将表单数据发送 ...

  8. ExtJs6解决添加和修改Form共用一个form的隐藏域的id的取消传值

    问题重现:修改不会有问题,id会绑定之前的grid,有具体数字 添加有问题,因为id是空,传的是绑定值的话会显示"类名-1",从int类型变成了string类型,后台会出错 这是E ...

  9. form提交--jquery.form.js

    jquery.form.js 官网  http://www.malsup.com/jquery/form/ 先写一个简单的form,提交后在后台打印参数. formsubmit.jsp <%@ ...

最新文章

  1. OpenCL,OpenGL编译
  2. java加载xml配置文件_java读取配置文件的几种方法
  3. axios 发 post 请求,后端接收不到参数的解决方案
  4. 使用Sqlmap对dvwa进行sql注入测试(初级阶段)
  5. 聚类算法 距离矩阵_快速且不需要超参的无监督聚类方法
  6. POI(java 操作excel,word等)编程
  7. excel在线_功能强大的纯前端 Excel 在线表格: Luckysheet
  8. 使用@Async进行异步调用详解
  9. 【转载+思考】追问泄题之源:命题权寻租打开方便之门
  10. 管理学基础 形成性考核一
  11. python random random_【python】random与numpy.random
  12. 深入理解JVM虚拟机(一):JVM运行时数据区
  13. 如何解决存在的1px问题?
  14. 个性测试:跟乐嘉学性格色彩(图)
  15. OSChina 周六乱弹 ——因为四毛钱,友谊的小船就翻了
  16. 【OpenCV图像处理】十五、图像空域滤波(上)
  17. 水星怎么设置网速最快_水星路由器怎么限制别人网速_水星怎么限制wifi网速?-192路由网...
  18. 苹果微信多开_史上最全微信双开 全平台【IOS/安卓/WIN】
  19. 深入理解Linux内核第3版--笔记-1.pdf
  20. 数组随机取数(大乐透机选投注)

热门文章

  1. Notification和Notification Manager的使用
  2. 天猫权益平台如何10倍的提升数据库查询响应时间
  3. aspose-cells 表合并
  4. 支付宝发布黑科技“如影计划”,这真的不是愚人节的玩笑
  5. iOS开发--Mac下server搭建
  6. 有关网页渲染,每个前端开发者都该知道的那点事
  7. Essential Studio for mobile MVC如何创建一个Razor应用程序平台
  8. Windows Mobile使用Shared Memory(共享内存)进行IPC(进程间通信)的开发
  9. 企业中的混乱:如何对云计算具有信心
  10. 《Storm实时数据处理》一2.6 统计与持久化日志统计信息