gpt4 book ai didi

JQuery发送时删除空数组

转载 作者:行者123 更新时间:2023-12-03 21:42:49 26 4
gpt4 key购买 nike

我有以下代码:

$.post('block_ajax.php'
, { 'action': 'set_layout'
, 'listid': 123
, 'layout': []
}
, function(data) {
// ...
}
);

接收脚本(block_ajax.php)仅接收“action”和“listid”参数。当我检查使用 Chrome 发送的内容时,我发现“layout”参数甚至没有发送到后端脚本。

由于空数组和不存在数组之间存在差异,因此我想让 JQuery 发送空数组。我可以找到一些迹象表明 JQuery (1.6.1) 似乎会这样做,但不知道如何阻止它这样做。 JSON格式允许空数组和空对象,所以我认为应该是可能的。

有人知道要更改什么以便 JQuery 可以发送空数组吗?

最佳答案

我们的组织有两种方法来解决这个问题:

  • 以 JSON 形式发送数据而不是 POST 数据是一种很好的通用方法,尽管有时与 Rails 等框架集成有点困难,因为您可能必须添加显式后端调用来解码JSON 数据。
  • vinod 指出的
  • [""] 会很好地工作,因为许多框架(例如 Rails)通常会将其视为空数组。 (原因请参见this Stack Overflow answer)。
    • 注意:当尝试与 Rails 的某些方面集成时,特别是在发送通过 has_many 关系相关的对象 ID 列表时,此方法有效。例如。如果你有一个 foos 表和一个 bars 表,以及 foos has_many :bars 到 :foo_bars,一种方式要删除 foo 对象上的所有关联,请传递 foo: { bar_ids: [""] }

这两种方法都比预期的更黑客,我很高兴发现一种更简洁的方法。

关于JQuery发送时删除空数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6622224/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com