jquery - Jquery ajax 发送带有 JSON 对象数组值的 JSON 对象
问题描述
注意:我在后端使用 Ruby on Rails。
我想使用 JQuery AJAX 发送以下数据:
data = [{a: 1, b: 2}, {c: 1, d: 2}]
$.ajax({
url: url,
type: 'post',
data: {'events': data}
})
但是当我使用 JQuery 发送这样的数据时,我会在我的 rails 后端获得以下数据
{"events"=><ActionController::Parameters {"0"=>{"a"=>"1", "b"=>"2"}, "1"=>{"c"=>"1", "d"=>"2"}} permitted: false>
为什么我没有在我的后端获得如下数据
{"events"=>[{"a"=>"1", "b"=>"2"}, {"c"=>"1", "d"=>"2"}]
此外,我已经看到一些答案,人们说要使用 JSON.stringify 进行序列化,例如
data = [{a: 1, b: 2}, {c: 1, d: 2}]
$.ajax({
url: url,
type: 'post',
data: {'events': JSON.stringify(data)}
})
但这会将events
值作为需要在后端反序列化的字符串发送。我认为没有必要使用 JSON.stringify 但如果有必要,原因是什么?
解决方案
its just a wild guess but did you try to use jquery-Ajax´s 'dataType' option ?
data = [{a: 1, b: 2}, {c: 1, d: 2}]
$.ajax({
url: url,
dataType: 'json',
type: 'post',
data: {events: data}
})
on the ruby side you may have to decode the json-string properly
推荐阅读
- javascript - 防止元素收缩
- c++ - 从内部系统调用生成调用堆栈
- mysql - 用其他字段唯一值的序号更新表中的字段
- ruby-on-rails - Rails 5 - 访问关联表中的外键以外的另一列
- c# - 如何修复 UIPickerViewModel 中的 Override 方法 GetTitle
- vba - 删除使用 VBA 保存为 msg 文件的电子邮件?
- java - 变量表示的Java对象类型
- c++ - 在 C++ 中调用作为参数传递的同一模板函数的两个版本
- apache-spark - 通过 PySpark 加载数据并执行连接时面临的问题
- bash - 如何在bash中加入一个文件夹中的两个连续文件(1和2、3和4,...)