Javascript Ajax成功处理程序-数据未定义

Javascript Ajax成功处理程序-数据未定义,javascript,ruby-on-rails,ruby,ajax,Javascript,Ruby On Rails,Ruby,Ajax,下面是我如何提出ajax请求的 #action def get_item if request.get? binding.pry #it always stop here, so it's working item = Item.where(...) unless item item = Item.new # ..... end respond_to do |format|

下面是我如何提出ajax请求的

  #action
  def get_item
    if request.get?
      binding.pry  #it always stop here, so it's working
      item = Item.where(...)
      unless item
        item = Item.new
        # .....
      end
      respond_to do |format| 
        format.json { render(json: item) } 
      end
    elsif request.post?
       # ......
    end
  end

  #view
     $.ajax({
          type: "GET",
          url: "/contr/get_item",
                data: {key1: "value1"},
                //datatype: "json",
                success: function(data){
                  console.log("ajax success, data -> " + data[0]);
                    }
             });
尽管执行了
get\u项
中的代码,但页面上的
数据
值始终是
未定义的

我错过了什么

p、 请注意,请求是用json从服务器发回的。我可以通过“调试工具”在Chrome中查看它,方法是单击F12并转到“网络”选项卡。

尝试以下操作:

 def get_item
   if request.get?
     item = Item.where(...)
     unless item
       item = Item.new
       # .....
     end
     render :json => item.to_json
   elsif request.post?
    #...
   end
 end
看法
你的URL需要告诉你想要使用什么格式。在您的例子中,它应该以
.json
结尾,以json作为响应

#view
   $.ajax({
        type: "GET",
        url: "/contr/get_item.json",

您是否尝试过在点击respond_to块时查看
项是否已定义?如果未指定对象success,请使用data.d:function(data){console.log(“ajax success,data->”+data.d);}您所说的“d”是什么意思?
#view
   $.ajax({
        type: "GET",
        url: "/contr/get_item.json",