2

在rails中,我有一个带有remote true的表单,如下所示:

<%= form_for(@thing, :html => { :'data-type' => 'json' },  :remote => true ) do |f| %>

我正在使用 javascript 中的 ajax 事件:

$('#new_thing').bind('ajax:complete', function(json, status, xhr){
        console.log("complete!");
        console.log(json);
        console.log(xhr);
        console.log(status);
});

在控制器中,我有一行代码可以像这样响应它:

respond_to do |format|
  format.json { render :json => @thing }
end

问题是控制台记录的来自服务器的返回响应不是 json 对象,它是状态对象,而 json 响应是属性“responseText”下的文本字符串,已被转义。

如何让服务器仅使用@thing 的 json 对象进行响应?

这其中的任何阶段有什么问题吗?

谢谢!

4

1 回答 1

3

尝试parseJSON(json['responseText'])获取服务器响应的 JSON 对象。我认为您应该在表单提交事件上手动绑定 Ajax 调用,以获取 JSON 对象而无需在函数success处理程序中进行转换$.ajax()

于 2012-12-16T14:30:09.530 回答