问题描述:在和后端对接时,使用jquery的ajax的post方式向后端传递一序列约定好格式的对象数组。遇到了一个现象:如果对象中的数组是空数组,那么在请求参数中是不会出现的。

  以下是数据的对比:

 jQuery - ajax - post - 数据  接口请求参数中无法找到daily及daily_group
 

  有人会问:为啥要提交一个空数组上去呢?因为有时会有这样的需求啊,比如说后端接口兼容等等。

  我遇到这个问题是:由于编辑时改了数据导致为空数组,保存时没有传递相关数据;结果再次编辑时,数据还在。原因是后端没有获取到新的数据,就没有更改数据。

  

  解决问题

  方法一:将请求的json对象格式化为字符串,就可以发送空数组了。但是缺点是,在看请求参数时是一堆字符串,不便于阅读;并且后端php在接受数据后,还需要json_encode()格式化处理。

  

  方法二:前端不改,前后端约定,当获取不到参数时,就将对应参数的值设置为空数组。个人认为这个可取。

  

  问题本质:为什么ajax post上传之后,空数组会被过滤掉呢?原因就在于jquery的ajax方法中的这段代码:

  以下是测试代码:

  

  那么是不是可以:把ajax方法里面processData设置为false之后,再去序列化一下参数呢?

  

  然而实践结果虽然能上传过去,但是名称却变成了[object Object]

  

jQuery的ajax的post请求json格式无法上传空数组的更多相关文章

  1. ios开发 将json格式数据上传服务器

    看了一些大小牛的资料其实就3步 1.使用post 请求 ,因为get是不能上传的 2.设置请求类型 , 讲你的json数据上传 3.向服务器发送数据按照下面示例代码,就差不多了 1 // 1.创建请求 ...

  2. Android转换集合数据(ArrayList)为Json格式并上传服务器

    使用Gson上传集合数据到服务器,1.最外层用 ArrayMap<String, Object> 封装:2.通过  mRequestParam.put("cmdLineIds&q ...

  3. 前端ajax发送post 请求 json格式 springMVC报错415

    如标题所示 后端填坑日记 在使用springMVC的时候发现 后端使用@RequestBody注解会报错415 不支持的媒体类型 相信很多小伙伴都遇到过或者正在面临这个报错 提示错误:The serv ...

  4. JQuery的Ajax跨域请求的

    JQuery的Ajax跨域请求的(Ajax) 什么是jsonp格式呢?API原文:假设获取的数据文件存放在远程server上(域名不同.也就是跨域获取数据),则须要使用jsonp类型.使用这样的类型的 ...

  5. jQuery使用ajax跨域请求获取数据

    jQuery使用ajax跨域请求获取数据  跨域是我在日常面试中经常会问到的问题,这词在前端界出现的频率不低,主要原因还是由于安全限制(同源策略, 即JavaScript或Cookie只能访问同域下的 ...

  6. AJAX跨域请求json数据的实现方法

    这篇文章介绍了AJAX跨域请求json数据的实现方法,有需要的朋友可以参考一下 我们都知道,AJAX的一大限制是不允许跨域请求. 不过通过使用JSONP来实现.JSONP是一种通过脚本标记注入的方式, ...

  7. play framework接收post请求json格式的参数

    大家在用play framework框架开发第三方调用你的接口的时候并且用json格式的参数post请求 ,参数接收是个问题 ,因为play对表单提交post请求有处理: 有两种方法: 1.直接形参列 ...

  8. ReadyAPI/soapUI发送post请求json格式(带有中文字符),后台获取参数为空

    解决:请求编码格式默认为空,在"TestCase"的指定Step的Request Properties中, 改Encoding编码格式为UTF-8. 原文:soapUI发送post ...

  9. robot framework 接口测试 http协议post请求json格式

    robot framework 接口测试 http协议post请求json格式 讲解一个基础版本.注意区分url地址和uri地址. rf和jmeter在添加服务器地址也就是ip地址的时候,只能url地 ...

随机推荐

  1. 第一个kbmmw for Linux 服务器

    从kbmmw 5.01 开始,就正式支持delphi 10.2 和Linux 了. 今天我们就建一个 kbmmw for linux 服务器简单说一下. 本例子基于上次的linux Daemon例子 ...

  2. java web各个技术细节总结

    HTML 非表单标签 1.b 粗体   u 下划线 i 斜体 del 删除效果 2.a  超链接  href  target=-blank 3.img 图片 4.frameset(frame)  框架 ...

  3. 51.从首页内容跳转到第二个Tabbar控制器(controller)

    TabBarController: 创建TabBar的控制器 注意:在点击的内容方法页面,添加头文件 #import "TabBarController.h" #import &q ...

  4. 2019.01.17 bzoj2333: [SCOI2011]棘手的操作(启发式合并)

    传送门 启发式合并菜题. 题意:支持与连通块有关的几种操作. 要求支持连边,单点修改,连通块修改,全局修改和单点查值,连通块查最大值和全局最大值. 我们对每个连通块和答案用可删堆维护最大值,然后用启发 ...

  5. 2018.11.02 NOIP模拟 距离(斜率优化dp)

    传送门 分四个方向分别讨论. 每次枚举当前行iii,然后对于第二维jjj用斜率优化dpdpdp. f[i][j]=(j−k)2+mindisk2f[i][j]=(j-k)^2+mindis_k^2f[ ...

  6. hdu-1036(格式题+精确度)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1036 心得:注意,要进行四舍五入的精确可以用+0.5实现. #include<iostream& ...

  7. CButton控件

    1. CButton等控件一般有两种方式创建,一是在资源视图中添加,一是在代码中使用成员函数Create()进行动态创建.如果是第一种那么添加Button变量同样在资源视图中实现,右击Button控件 ...

  8. Cron连接正常工作5次后异常原因分析

    目录 目录 1 问题描述 1 分析定位 1 解决方法 2 附1:Cron工作流 3 附2:SIGPIPE发生的位置 3 如果一个shell命令的"$?"值为141,则它是收到了SI ...

  9. Matlab用mpeaks函数求峰值点坐标

    clear;clc;close all % 初始化 m = [-6,-2,0,2,4,6]; sigma = [1,1,0.5,0.25,0.6,2]; h = [1,2,3,2,2.13,3.14] ...

  10. IP地址和域

    1. 0. 0. 0到 126.255.255.255为A类 主要分配给具有大量主机而局域网络数量较少的大型网络 128.0.0.0到191.255.255.255为B类 一般用于国际性大公司和政府机 ...