Mar*_*Lee 22 arrays ajax jquery object
我有以下代码:
$.post('block_ajax.php'
, { 'action': 'set_layout'
, 'listid': 123
, 'layout': []
}
, function(data) {
// ...
}
);
Run Code Online (Sandbox Code Playgroud)
接收脚本(block_ajax.php)仅接收"action"和"listid"参数.当我检查使用Chrome发送的内容时,我看到"layout"参数甚至没有发送到后端脚本.
由于空数组与缺少数组之间存在差异,我想让JQuery发送空数组.我可以找到一些迹象表明JQuery(1.6.1)似乎是这样做的,但不是如何阻止它这样做.JSON格式允许空数组和空对象,所以我认为它应该是可能的.
有人知道要改变什么,所以JQuery可以发送空数组吗?
我们的组织有两种解决问题的方法:
[""]正如vinod所指出的那样,因为许多框架(例如Rails)通常将其视为空数组.(因此,请参阅此Stack Overflow答案).
has_many关系相关的对象ID列表时.例如,如果您有一个foos表和一个bars表,并且foos has_many :bars through :foo_bars删除foo对象上的所有关联的方法是通过foo: { bar_ids: [""] }.这两种方法都比预期的要糟糕,我很乐意发现一种更清洁的方法.
vin*_*nod -4
编辑:请参阅卢克的答案以获得更好的解决方案:/sf/answers/2239732701/
[""]正如上面的链接所解释的,我已经留下了之前针对 Rails 如何处理的具体答案。
注意:特定于 Rails
我不确定为什么您需要发送空白参数。只需检查 PHP 脚本中参数是否存在就足够了。但是,如果您确实想这样做,请使用'layout': [""]而不是'layout': []. 应该发送参数。
(此外,您可能需要重命名layout为layout[]以表明它是一个数组,但这是不必要的。)