js前端 发送post请求中 http中 query string paramter、form data和request playload的区别

前话:今天在调试API接口的时候,要求发送post请求,请求API地址格式如下http:xxxxx.com/api?param1=value1&param2=value2。当开始请求的时候返回的结果一直报错,报错如下
在这里插入图片描述
报错:Required String parameter ‘userName’ is not present
后来发现是把参数写到form data中了,所以报错。所以就来提一下post请求中query string paramter、form data和request playload的区别

一、query string paramter

在发送get或者post请求的时候,如果把参数直接写到地址后面的话,参数就会出现在query string paramter字段中。例如下面例子

axios.get("https://www.baidu.com?name=value").then((res)=>{
				console.log(res);
			})

上面的例子向百度进行了get请求并传入参数,这样name和value就会出现在http中的query string paramter字段中。如下图
在这里插入图片描述
如果是post请求也是如此,例如下面

 axios.post("http://xxx.com/xxx/xxx/api?userName=xxxx&type=2",""
			 ).then((res)=>{
			 	console.log(res);
			 }).catch((error)=>{
			 	console.log(error)
			 })

在这里插入图片描述

在post请求中还会发现没有提交data数据但是content-type的默认类型是application/x-www-form-urlencoded(常规的HTML页面上的form的Content-type默认值)

二、form data

发送post请求

let result=JSON.stringify(xxx)
			axios.post("http://xxx.com/xxx/xxx/api",result
			).then((res)=>{
				console.log(res);
			}).catch((error)=>{
				console.log(error)
			})

这里没有指定content-type类型,但是默认值是application/x-www-form-urlencoded,所以发送的参数在http请求中form data中
在这里插入图片描述

在这里插入图片描述
还有就是原生表单提交参数也是在form data中,并且content-type为application/x-www-form-urlencoded,例如

<form action="https://www.baidu.com/" method="post" id="forms">
		    <input type="text" name="username" value="" />
		    <input type="password" name="pwd" value="" />
		    <input type="submit" value="提交"/>
		</form>

在这里插入图片描述

在这里插入图片描述
或者content-type设置为Content-Type: multipart/form-data时,参数信息也会出现在form data中

三、request playload

在发送post请求的时候,如果content-type字段设置为application/json、text/plain;charset=UTF-8、text/html;charset=UTF-8时 (可能还有其他情况,这里没有全部列举出来) 参数会出现在request playload中

例如下面

let result=JSON.stringify(xxx)
			axios.post("http://xxx.com/xxx/xxx/api",result,
			{
				headers:{
				"Content-Type":"text/plain;charset=UTF-8"
			},
			}
			).then((res)=>{
				console.log(res);
			}).catch((error)=>{
				console.log(error)
			})

在这里插入图片描述
在这里插入图片描述

注:关于它们之间的字面本意或其他解释参考博客前后端联调之Form Data与Request Payload,你真的了解吗?

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Kinghiee

爸爸们求打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值