HTTP请求中的Form Data与Request Payload的区别

前端开发中经常会用到AJAX发送异步请求,对于POST类型的请求会附带请求数据。而常用的两种传参方式为:Form Data 和 Request Payload。

GET请求

使用get请求时,参数会以key=value的形式拼接在请求的url后面。例如:

http://m.baidu.com/address/getlist.html?limit=50&offset=0&t=1502345139870

但是受限于请求URL的长度限制,一般参数较少时会使用get请求。

POST请求

当参数数量较多,且对数据有一定安全性要求时,会考虑用post请求传递参数数据。POST请求的参数数据是在请求体中。

方式一: Form Data形式

当POST请求的请求头里设置Content-Type: application/x-www-form-urlencoded(默认), 参数在请求体以标准的Form Data的形式提交,以&符号拼接,参数格式为key=value&key=value&key=value...

前端代码设置:

xhr.setRequestHeader(‘Content-type‘, ‘application/x-www-form-urlencoded‘);
xhr.send(‘a=1&b=2&c=3‘);

在servlet中,后端可以通过request.getParameter(name)的形式来获取表单参数。

方式二:Request Payload形式

如果使用AJAX原生POST请求,请求头里设置Content-Type:application/json,请求的参数会显示在Request Payload中,参数格式为JSON格式:{"key":"value","key":"value"...},这种方式可读性会更好。

后端可以使用getRequestPayload方法来获取。

Form Data 和 Request Payload 区别

如果请求头里设置Content-Type: application/x-www-form-urlencoded,那么这个请求被认为是表单请求,参数出现在Form Data里,格式为key=value&key=value&key=value...

原生的AJAX请求头里设置Content-Type:application/json,或者使用默认的请求头Content-Type:text/plain;参数会显示在Request payload块里提交。

参考文档:

http://www.cnblogs.com/btgyoyo/p/6141480.html

http://xiaobaoqiu.github.io/blog/2014/09/04/form-data-vs-request-payload/

时间: 2024-10-13 21:22:52

HTTP请求中的Form Data与Request Payload的区别的相关文章

HTTP请求中的form data和request payload的区别

https://www.cnblogs.com/btgyoyo/p/6141480.html https://blog.csdn.net/qq_36719449/article/details/82820760 原文地址:https://www.cnblogs.com/zhangww/p/11306362.html

【转】form data和request payload的区别

HTML <form> 标签的 enctype 属性 在下面的例子中,表单数据会在未编码的情况下进行发送: <form action="form_action.asp" enctype="text/plain">   <p>First name: <input type="text" name="fname" /></p>   <p>Last name: 

form data和request payload的区别

HTML <form> 标签的 enctype 属性 在下面的例子中,表单数据会在未编码的情况下进行发送: <form action="form_action.asp" enctype="text/plain">   <p>First name: <input type="text" name="fname" /></p>   <p>Last name: 

AJAX POST请求中參数以form data和request payload形式在servlet中的获取方式

HTTP请求中,假设是get请求,那么表单參数以name=value&name1=value1的形式附到url的后面,假设是post请求,那么表单參数是在请求体中,也是以name=value&name1=value1的形式在请求体中.通过chrome的开发人员工具能够看到例如以下(这里是可读的形式,不是真正的HTTP请求协议的请求格式): get请求: RequestURL:http://127.0.0.1:8080/test/test.do?name=mikan&address=

AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式

HTTP请求中,如果是get请求,那么表单参数以name=value&name1=value1的形式附到url的后面,如果是post请求,那么表单参数是在请求体中,也是以name=value&name1=value1的形式在请求体中.通过chrome的开发者工具可以看到如下(这里是可读的形式,不是真正的HTTP请求协议的请求格式): get请求: RequestURL:http://127.0.0.1:8080/test/test.do?name=mikan&address=str

ajax请求中form data与request payload之间的区别

HTTP请求过程中,get请求:表单参数以name=value&name1=value1的形式附到url的后面:  post请求:表单参数是在请求体中,也是name=value&name1=value1的形式在请求体中. POST表单请求提交时,使用的Content-Type是application/x-www-form-urlencoded,而使用原生AJAX的POST请求如果不指定请求头RequestHeader,默认使用的Content-Type是text/plain;charset

POST请求中参数以form data和request payload形式+清空数组方式

测试与服务端ajax时用的dva封装的request方法,而后端怎么也拿不到参数.结果返现参数在request payload里. HTTP POST表单请求提交时:Content-Typeapplication/x-www-form-urlencoded,而使用原生AJAX的POST请求如果不指定请求头RequestHeader,默认使用的Content-Type是text/plain;charset=UTF-8. 表单提交数据是名值对的方式,而文件上传服务器需要特殊处理,普通的post请求数

query string parameters 、 Form Data 、 Request Payload

微信小程序ajax向后台传递参数的时候总是报400错误 然后看了一下network 发现是query string parameters,但是我写的header如下 header:{ "Content-Type":'json' } 所以小程序总是报400 未完待续.... 附对照表 待完善 header:{ "Content-type":'json' }  Request Payload header:{ "Content-type":'x-ww

ABAP中TYPES与DATA、TYPE与LIKE 区别

1.TYPES与DATA区别: TYPES是用来自定义某种类(型)的,需(用DATA语句)实例化以后才可以使用 DATA 是用来声明基本类型数据对象(实例变量)的,对于用DATA直接定义的结构体对象(不参照其它结构类型) 参照自定义类型生成新数据语法格式如下:TYPES | DATA  ...... TYPE type1 .......        ''type1 代表程序内部类型 参照程序中已经声明的数据对象生成新数据语法格式如下:TYPES | DATA ...... LIKE dobj