form数据请求参数格式
请求后台参数格式问题
当请求后台传递参数时,有多中类型,而每一种都需要前后台进行配合,而这有时候会很简单,有时候却十分困难,记录一下,以备后期深究
数据
后台需要的数据
- form表单
嵌套数据,第二层后用字符串格式
{obj: '{a: 1}'}
前台设置
- form请求头
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
参数设置
qs.stringify(params)
上述借助了
qs
插件,看起来很美好,而且也很ok,可惜死活后台接收不到{obj: {a: 1}}
, obj的具体参数,各种折腾依旧不行,各种折腾qs
,可惜无解,仔细回味 后台一句话,obj的参数是JSON格式字符串,何不手动改造,而不使用qs
呢
代码
请求参数结构
const params = {pageSize: 5,currentPage: 1,sortParams: [{sort: 'time desc'}]
}
需要改造为
通过上图可以看出,第二层之后的结构保留字符串格式
改造
// 数据结构判断
function type (params) {// Symbol类型const typeofObje = typeof paramsif (typeofObje !== 'object') return typeofObjeif (params === null) return 'null'const obj = {};`Boolean,Number,String,Function,Array,Date,RegExp,Object,Error,Set,Map`.split(',').forEach(e => {obj[`[object ${e}]`] = e.toLowerCase()})const res = Object.prototype.toString.call(params)return obj[res]
}
// 改造
const Data = JSON.parse(JSON.stringify(params))
for (let item in Data) {if (type(Data[item]) === 'object' || type(Data[item]) === 'array') {// 只要是object,array就进行转为JSON字符串Data[item] = JSON.stringify(Data[item])}
}
// 引入qs
import qs from 'qs'
payLoad = qs.stringify(Data) // 便可以了
总结
- 在使用过程中,
qs
的stringify
有很多种配置,但是我没有找到适合我的,只能手动改造了 - 感觉难点在于,
qs
被我认为无所不能,导致没能意识到错误,其次后台其实并不是很清楚,前台到底是如何传参的,他也无法明确指出前台到底该如何传参,只能不断尝试了
转载于:https://www.cnblogs.com/sinosaurus/p/10691729.html
form数据请求参数格式相关推荐
- Get和Post请求参数格式
package demo2;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet ...
- 跳槽涨薪技术之python+pytest接口自动化(6)-请求参数格式的确定
[文章末尾给大家留下了大量的福利] 我们在做接口测试之前,先需要根据接口文档或抓包接口数据,搞清楚被测接口的详细内容,其中就包含请求参数的编码格式,从而使用对应的参数格式发送请求.例如某个接口规定的请 ...
- android 请求参数打印,android retrofit 请求参数格式RequestBody的方法
以前都是使用 Observable login(@HeaderMap Map headers, @QueryMap Map map); @QueryMap方式,将参数放入map中传输的 现在改用Req ...
- axios 之 post请求参数格式不正确得问题
问题是这样得,今天用axios 发起要给post请求,参照官方写得 请求过后发现后台拿不到数据,找了很久发现了问题: 就是axios发起post请求得时候发送过去的数据成了键,而值是空 就是 ...
- post 请求参数格式
最近项目部署到新环境tomcat+mysql,想看看项目部署成功没有,就用soupui调对应接口开测试,soupui使用比较简单,给上接口地址,入参xml报文,把入参的media Type设置为app ...
- post请求参数格式
1.application/x-www-form-urlencoded 首先,Content-Type 被指定为 application/x-www-form-urlencoded:其次,提交的数据按 ...
- JS ajax请求参数格式( formData 、serialize)
1 $("#importBtn").click(function(){ 2 if($("#conId").val() == ""){ 3 a ...
- 通过Validation框架检查请求参数的基本格式
通过Validation框架检查请求参数的基本格式 1.1. 添加依赖 Spring Validation框架可用于在服务器端检查请求参数的基本格式(例如是否提交了请求参数.字符串的长度是否正确.数字 ...
- postman 传递数组对象_postman json请求参数向JAVA后台传对象以及数组
一,JSON格式传递实体类对象,postman请求参数格式如下(Headers请求头添加 Content-Type:application/json) 后台接收如下(@ResponseBody用于数据 ...
最新文章
- php关键词分词搜索 最多匹配的排在最前面_百度搜索引擎工作原理,做Seo的建议看一看 - 蜘蛛池博客...
- iOS __block 与 __weak
- arm ida 伪代码 安卓 符号表_IDA 制作 sig文件 gdb 导入符号表
- usb接口供电不足_USB不被电脑识别,按F8有用吗?这篇文章告诉你
- linux man中文手册
- 【TWVRP】基于matalb粒子群算法求解带时间窗的多客户单仓库车辆路径规划问题【含Matlab源码 1407期】
- 国内的健身房管理系统榜单-捷径系统
- 回顾传输层的TCP与UDP协议
- 《给情绪多点时间》读后感4000字
- 读书笔记004:《伤寒论》- 手阳明大肠经
- Springboot实战:项目部署
- 1.3寸OLED SH1106 IIC驱动显示错误解决方法
- 深度学习 VS 传统的机器学习
- s3c24xx的时钟初始化
- 回顾这两个月的面试总结,不断的试错不断地坚持!!你也可以的
- 关于激光打标机矢量图下载的说明
- js实现一个时分秒计时器
- moment/dayjs常用操作,下一年,下一天
- 记录一次uc推荐去广告
- 本地安装运行HiC数据可视化容器higlass-docker