【发布时间】:2018-01-31 00:30:06
【问题描述】:
在打印我的 AJAX 调用结果时,我得到了[object Object]。请帮我找出我做得不对的部分。
事件模型具有列name、description。我期望这种输出是正确的吗?
{ "1" =>
{
"name" => "some name",
"description" => "some description"
}
}
查看:
function testAJAX() { var test_url = "#{foo_events_path}"; $.ajax({ type: "GET", url: test_url, data: { event_id: 1 }, success:function(data) { var response = JSON.parse(JSON.stringify(data)); alert(response.events); } });events_controller.rb
def foo @events = Event.where(id: params[:event_id]) render json: { events: @events }.to_json endroutes.rb
resources :events do collection do get 'foo' end end
我尝试使用谷歌搜索,但其中大多数使用 AJAX for php。这是我能找到的与我的问题最接近的:Is it possible to refresh partial frequently using Ajax?
【问题讨论】:
-
我刚刚意识到,也许标题应该是“AJAX 从视图中获取数据库记录”。我的坏
-
你为什么要
JSON.parse(JSON.stringify(data))?您可能会收到一个字符串形式的 json 对象数组,在这种情况下,只需执行JSON.parse(data)位。您可以随时通过console.log(typeof(data))来查看您获取的数据类型。 -
@jvillian 好的,所以我删除了 JSON.stringify() 部分,然后登录到控制台。现在它说我有一个错误
JSON.parse: unexpected character at line 1 column 2 of the JSON data所以我猜这意味着我在控制器方法中有错误的语法? -
去掉
to_json,你会得到什么? -
嗯,实际上,你返回的是一个哈希,所以你不应该做任何事情,因为哈希应该被转换成一个合适的 js 对象。而且,是的,我猜你的
to_json是不正确的。 (哦,我错过了@SebastianPalma 的评论。你现在可以放心地忽略我了。)
标签: jquery ruby-on-rails ajax