请求后台参数格式问题

当请求后台传递参数时,有多中类型,而每一种都需要前后台进行配合,而这有时候会很简单,有时候却十分困难,记录一下,以备后期深究

数据

后台需要的数据

  • 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) // 便可以了

总结

  • 在使用过程中,qsstringify有很多种配置,但是我没有找到适合我的,只能手动改造了
  • 感觉难点在于,qs被我认为无所不能,导致没能意识到错误,其次后台其实并不是很清楚,前台到底是如何传参的,他也无法明确指出前台到底该如何传参,只能不断尝试了

转载于:https://www.cnblogs.com/sinosaurus/p/10691729.html

form数据请求参数格式相关推荐

  1. Get和Post请求参数格式

    package demo2;import java.io.IOException;import javax.servlet.ServletException; import javax.servlet ...

  2. 跳槽涨薪技术之python+pytest接口自动化(6)-请求参数格式的确定

    [文章末尾给大家留下了大量的福利] 我们在做接口测试之前,先需要根据接口文档或抓包接口数据,搞清楚被测接口的详细内容,其中就包含请求参数的编码格式,从而使用对应的参数格式发送请求.例如某个接口规定的请 ...

  3. android 请求参数打印,android retrofit 请求参数格式RequestBody的方法

    以前都是使用 Observable login(@HeaderMap Map headers, @QueryMap Map map); @QueryMap方式,将参数放入map中传输的 现在改用Req ...

  4. axios 之 post请求参数格式不正确得问题

    问题是这样得,今天用axios 发起要给post请求,参照官方写得      请求过后发现后台拿不到数据,找了很久发现了问题: 就是axios发起post请求得时候发送过去的数据成了键,而值是空 就是 ...

  5. post 请求参数格式

    最近项目部署到新环境tomcat+mysql,想看看项目部署成功没有,就用soupui调对应接口开测试,soupui使用比较简单,给上接口地址,入参xml报文,把入参的media Type设置为app ...

  6. post请求参数格式

    1.application/x-www-form-urlencoded 首先,Content-Type 被指定为 application/x-www-form-urlencoded:其次,提交的数据按 ...

  7. JS ajax请求参数格式( formData 、serialize)

    1 $("#importBtn").click(function(){ 2 if($("#conId").val() == ""){ 3 a ...

  8. 通过Validation框架检查请求参数的基本格式

    通过Validation框架检查请求参数的基本格式 1.1. 添加依赖 Spring Validation框架可用于在服务器端检查请求参数的基本格式(例如是否提交了请求参数.字符串的长度是否正确.数字 ...

  9. postman 传递数组对象_postman json请求参数向JAVA后台传对象以及数组

    一,JSON格式传递实体类对象,postman请求参数格式如下(Headers请求头添加 Content-Type:application/json) 后台接收如下(@ResponseBody用于数据 ...

最新文章

  1. php关键词分词搜索 最多匹配的排在最前面_百度搜索引擎工作原理,做Seo的建议看一看 - 蜘蛛池博客...
  2. iOS __block 与 __weak
  3. arm ida 伪代码 安卓 符号表_IDA 制作 sig文件 gdb 导入符号表
  4. usb接口供电不足_USB不被电脑识别,按F8有用吗?这篇文章告诉你
  5. linux man中文手册
  6. 【TWVRP】基于matalb粒子群算法求解带时间窗的多客户单仓库车辆路径规划问题【含Matlab源码 1407期】
  7. 国内的健身房管理系统榜单-捷径系统
  8. 回顾传输层的TCP与UDP协议
  9. 《给情绪多点时间》读后感4000字
  10. 读书笔记004:《伤寒论》- 手阳明大肠经
  11. Springboot实战:项目部署
  12. 1.3寸OLED SH1106 IIC驱动显示错误解决方法
  13. 深度学习 VS 传统的机器学习
  14. s3c24xx的时钟初始化
  15. 回顾这两个月的面试总结,不断的试错不断地坚持!!你也可以的
  16. 关于激光打标机矢量图下载的说明
  17. js实现一个时分秒计时器
  18. moment/dayjs常用操作,下一年,下一天
  19. 记录一次uc推荐去广告
  20. 本地安装运行HiC数据可视化容器higlass-docker

热门文章

  1. java esc_java – Swing:当按下ESC键时如何关闭对话框?
  2. linux查看vnc服务加密修复,VNC远程管理Linux服务器安全指导
  3. linux 日志 \var\log
  4. javascript window alert
  5. 27 Server Sockets
  6. Python AES
  7. DataFrame 排序
  8. 读取其他软件页面数据_电脑软件分享之硬盘数据完美恢复
  9. 计算机等级考试四级有多少题,全国计算机等级考试四级试题(一)
  10. 理想的人才梯队体系特征:40页人才梯队建设实施方案,果断收藏