HTTP的请求方法POST是再常见不过的了,这里详细地说明四种常用的提交数据方案,巩固下基础。

在说POST之前,先看下HTTP请求的结构,分为三个部分:状态行、请求头、消息主体

<method> <request-URL> <version>

<headers>

<entity-body>

我们在代码中,通过new一个XMLHttpRequest实例时,就是创建了一个http请求,然后我们会指定使用GET、POST、UPDATE、DELETE等方法,以及请求的URL地址。对于POST而言,数据是放在消息主体中,但是并没有规定必须使用什么编码,我们可以自己决定消息主体的格式。

请求发送到服务端,需要服务端解析成功才有用。通常,是根据请求头中的Content-Type字段来判断消息主体用的是哪种方式编码,再对主体进行解析。所以,POST提交数据,涉及到Content-Type和消息主体编码方式两部分。

1.application/x-www-form-urlencoded

这是最常见的POST提交数据的方式了。原生的form表单,如果不设置enctype属性,最终就是以application/x-www-form-urlencoded方式提交数据。类似:

POST http://www.example.com HTTP/1.1 Content-Type: application/x-www-form-urlencoded;charset=utf-8title=test&sub%5B%5D=1&sub%5B%5D=2&sub%5B%5D=3

提交的数据按照key1=val1&key2=val2的方式进行编码,key和val都进行了转码。很多封装的库中的ajax请求,也是默认使用这种方式,jquery和axios

2.multipart/form-data

也是一种常见的POST提交方式,在使用表单上传文件时,必须让form表单的enctype等于multipart/form-data

POST http://www.example.com HTTP/1.1
Content-Type:multipart/form-data; boundary=----WebKitFormBoundaryrGKCBY7qhFd3TrwA------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="text"title
------WebKitFormBoundaryrGKCBY7qhFd3TrwA
Content-Disposition: form-data; name="file"; filename="chrome.png"
Content-Type: image/pngPNG ... content of chrome.png ...
------WebKitFormBoundaryrGKCBY7qhFd3TrwA--

这种方式一般用于上传二进制文件,例如图像、视频这种。

3.application/json;charset=utf-8

POST提交json格式的数据,告诉服务器消息主体是序列化后的JSON字符串。支持比键值对更加复杂的结构化数据。

    ajax: {url: '/users/login_success',method: 'POST',data: function(){return JSON.stringify({"phone": phone.value,"password": password.value})},success: function(res){console.log(res);},}

常见的POST提交数据方式相关推荐

  1. (转载)四种常见的 POST 提交数据方式

    转载地址:https://imququ.com/post/four-ways-to-post-data-in-http.html 四种常见的 POST 提交数据方式 HTTP/1.1 协议规定的 HT ...

  2. application/json 四种常见的 POST 提交数据方式

    四种常见的 POST 提交数据方式   HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 ...

  3. 四种常见的 POST 提交数据方式对应的content-type取值

    做前后端分离一般都有第3中 , 第一种 基本上jquery那年代用的了 第2种在需要传文件时用的 https://www.cnblogs.com/wushifeng/p/6707248.html 四种 ...

  4. [转载] application/json 四种常见的 POST 提交数据方式

    参考链接: 关于/联系我 application/json 四种常见的 POST 提交数据方式 转载声明: 本文系转载自以下两篇文章: 四种常见的 POST 提交数据方式 作者: 沧海一滴 转载仅为方 ...

  5. 四种常见的 POST 提交数据方式 专题

    原文地址为: 四种常见的 POST 提交数据方式 专题 定义和用法 enctype 属性规定在发送到服务器之前应该如何对表单数据进行编码. 默认地,表单数据会编码为 "application ...

  6. 四种常见的 POST 提交数据方式--good

    http://www.cnblogs.com/softidea/p/5745369.html 四种常见的 POST 提交数据方式--good HTTP/1.1 协议规定的 HTTP 请求方法有 OPT ...

  7. 四种常见的 POST 提交数据方式

    HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...

  8. Web 四种常见的POST提交数据方式

    HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ...

  9. 四种常见的 POST 提交数据方式对应的 content-type 取值

    application/x-www-form-urlencoded 这应该是最常见的 POST 提交数据的方式了.浏览器的原生 form 表单,如果不设置 enctype 属性,那么最终就会以 app ...

最新文章

  1. Javascript中的深拷贝和浅拷贝
  2. 解决页面换行因标点符号不能出现在每一行的开头,导致提前换行,中间出现空隙的问题
  3. 家庭装修里最大的问题
  4. [html] 你知道微信端的浏览器内核是什么吗?
  5. 2016-2018年机器学习大赛TOP开源作品汇总
  6. eclipse调试linux内核,Ubuntu下使用Eclipse+CDT+UML调试linux内核
  7. Java中,类的实例化方法
  8. linux patch 给文件打补丁,Linux补丁工具patch生成使用补丁用法示例
  9. 台式计算机用什么网卡,台式电脑无线网卡怎么用 台式机无线网卡使用教程 - WiFi共享大师...
  10. 方差分析结果如何看?指标怎么计算?
  11. android 休眠锁
  12. photoshop使用技巧_如何使用Photoshop创建逼真的漫画
  13. VC/MFC如何设置对话框、static背景颜色
  14. CTFSHOW WEB 1-100
  15. 你可以和十八岁一无所有的男生谈恋爱,但是当他二十八岁的时候还是一无所有,我劝你趁着离开。...
  16. RFC2861 TCP 拥塞窗口检验
  17. C++之路进阶——codevs2313(星际竞速)
  18. 显示hosts文件为只读问题
  19. elf文件中代码段有绝对地址但重定位表中无.text.rel
  20. 老北京人推荐的50个秘境景点

热门文章

  1. android studio parcelable,Android中Parcelable的使用详解
  2. 【IDEA】IDEA快速滚屏几种操作方式和快捷键设置方法
  3. 人民日报书单: 100 本增长见识的好书
  4. 基于STM32F103单片机的指南针电子罗盘方位显示原理图PCB程序设计
  5. 查找数组中的指定元素的位置--顺序查找与二分查找
  6. 武汉的堵,是你不懂的殇
  7. 第一章Single Threaded Execution模式 能通过这座桥的只有一个人
  8. PPT动画教程:配色方案
  9. 连续值的离散化有啥作用
  10. 华纳云:ddos攻击怎么防?防御ddos的几种方法