HTTP 请求参数之三种格式

您所在的位置:网站首页 请求接口中与请求参数相关的方法 HTTP 请求参数之三种格式

HTTP 请求参数之三种格式

2023-03-16 15:26| 来源: 网络整理| 查看: 265

前端开发中经常会用到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的默认格式,当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'); 复制代码

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

前端通过qs.stringify格式化参数

这种post格式跟get的区别在于,get把转换、拼接完的字符串用‘?’直接与表单的action连接作为URL使用,所以请求体里没有数据;而post把转换、拼接后的字符串放在了请求体里,不会在浏览器的地址栏显示,因而更安全一些。

方式二:Request Payload形式

如果使用AJAX原生POST请求,请求头里设置Content-Type:application/json,请求的参数会显示在Reques

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

前端通过JSON.stringify格式化参数

Form Data 和 Request Payload 区别

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

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

方式三-文件上传方式

表示http请求中的multipart/form-data方式,会将表单的数据处理为一条消息,用分割符隔开,可以上传键值对或者上传文件。在传很长的字节(如文件、图片)时应用multipart/form-data格式。smtp等协议也使用或借鉴了此格式

**multipart/form-data与x-www-form-urlencoded的区别 **

multipart/form-data:可以上传文件或者键值对,最后都会转化为一条消息 x-www-form-urlencoded:只能上传键值对,而且键值对都是通过&间隔分开的。

raw:可以上传任意格式的文本,文本不做任何修饰传到服务端。比如传一些xml,或者json数据,或者text文本数据。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3