Javascript Ajax成功处理程序-数据未定义
下面是我如何提出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|
#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",