02-18 post请求参数(form data和request payload)

本文探讨了AJAX POST请求中常见的两种参数传递方式:form data和request payload。get请求参数直接体现在URL中,而post请求通常设置Content-Type默认值。通过前端代码示例和后端如何在Servlet中接收参数进行了解析,并提到了36kr请求的Content-Type差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、AJAX Post请求中常用的两种传参数的形式:

	form data 和 request payload

2、get请求的时候,我们的参数直接反映在url里面,形式为key1=value1&key2=value2形式,比如:

http://news.baidu.com/ns?word=NBA&tn=news&from=news&cl=2&rn=20&ct=1

3、若post请求;

那么表单参数是在请求体中,也是以key1=value1&key2=value2的
形式在请求体中。通过chrome的开发者工具可以看到

4、注意post请求一般默认Content-Type:

application/x-www-form-urlencoded,参数是在请求体中,即请
求中的Form Data。

细节注明:前端代码:提交数据(搬运他人-感谢)

xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send("name=foo&value=bar")

后端代码:接收提交的数。在servlet中,可以通过request.getParameter(name)的形式来获取表单参数。

	/**
	 * 获取httpRequest的参数
	 * 
	 * @param request
	 * @param name
	 * @return
	 */
protected String getParameterValue(HttpServletRequest request, String name) {
    return StringUtils.trimToEmpty(request.getParameter(name));

5、在36kr中请求的Content-Type是

	application/json;charset=UTF-8,而请求表单的参数
	在Request Payload中

二者区别(借鉴别人-感谢):

 ①如果一个请求的Content-Type设置
为application/x-www-form-urlencoded,那么这个Post请求
会被认为是Http Post表单请求,那么请求主体将以一个
标准的键值对和&的querystring形式出现。这种方式
是HTML表单的默认设置,所以在过去这种方式更加常见。

②其他形式的POST请求,是放到 Request payload 中
(现在是为了方便阅读,使用了Json这样的数据格式),请
求的Content-Type设置为application/json;charset=UTF-8或者
不指定
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值