【发布时间】:2014-05-12 04:10:56
【问题描述】:
var obj = { subjects: [{ area: "Math"}, {area: "English"}] }
$.ajax({
type: 'POST',
data: {"mydata": JSON.stringify(obj)},
url: '/tosubjects',
dataType: "json",
contentType: "application/json",
processData: false,
beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))},
statusCode: {
200:function() { alert("200"); },
202:function() { alert("202"); }
},
success: function() { alert("sent"); },
error: function(xhr){ alert("error: " + xhr.statusText);
}
});
与
<%= csrf_meta_tag %>
在我的表单助手中。我正在使用 Rails。
这适用于单个记录。但是,如上所述,当尝试将两条记录作为 json 数组传递时,出现错误:
JavaScript component does not have a method named: "available"
这是因为我写的方式
data: {"mydata": JSON.stringify(obj)},
当我这样写时:
数据:JSON.stringify(obj),
没有报错,但是后来我没办法给对象起个名字,比如params[:mydata]。
data:字段需要怎么写?
【问题讨论】:
-
data : obj想到了吗?无需字符串化! -
谢谢。你对字符串化是正确的。但是...我不得不将 obj 重写为 var obj = '{ "subjects": [{ "area": "Math"}, {"area": "English"}] }'
标签: jquery ruby-on-rails ajax json