注意:我在后端使用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,但如果有必要,原因是什么?
这只是一个疯狂的猜测,但您是否尝试使用jquery-Ajax的"数据类型"选项?
data = [{a: 1, b: 2}, {c: 1, d: 2}]
$.ajax({
url: url,
dataType: 'json',
type: 'post',
data: {events: data}
})
在Ruby方面,您可能需要正确解码json字符串