JQuery ajax - 如何传递具有空值的数组参数

Posted

技术标签:

【中文标题】JQuery ajax - 如何传递具有空值的数组参数【英文标题】:JQuery ajax - how to pass an array parameter with null value 【发布时间】:2021-10-31 04:41:55 【问题描述】:

我需要将一个数组参数传递给我的 ASP.NET 后端。 它看起来像这样:

$.ajax( url: 'test', type: 'POST', data: test: [1, 2] )

而生成的表单数据为: test[]=1&test[]=2.

到目前为止一切顺利。但是当我尝试在数组中传递null 值时,就会出现问题:

$.ajax( url: 'test', type: 'POST', data: test: [1, null] )

在这种情况下,由于某种原因生成的表单数据如下所示: test[]=1&test[1]=.

请注意第二个test 段有一个数字索引。这无法在后端正确解析:带索引的段被忽略,所以后端没有我的 null 值。

知道如何让它工作吗?

【问题讨论】:

尝试使用 test: [1, 0] 或 test: [1, -1] 并在 API 内部转换回 @Serge 谢谢,我已经这样做了,但这只是一种解决方法,我想以更简洁的方式解决它。 【参考方案1】:

我通过使用空字符串而不是null来解决它:

$.ajax( url: 'test', type: 'POST', data: test: [1, ''] )

在这种情况下,表单数据如下所示:test[]=1&test[]=,并在后端正确解析为 1null

【讨论】:

以上是关于JQuery ajax - 如何传递具有空值的数组参数的主要内容,如果未能解决你的问题,请参考以下文章

具有未定义和空值的排序对象数组

使用jQuery AJAX将字符串数组传递给具有可变数量参数的webmethod

在 jquery 的自动完成中添加具有空值的自定义项

VBScript:将具有空值的参数传递给存储过程?

如何在Java中解析具有空值的JSON对象?

具有空值的 s-s-rS 输入参数触发报告本身