前言:原谅我,因为我在处理JSON方面很新。
我目前正在使用Rails和jQuery通过JSON检索一些数据。我能够成功地从我的控制器抓取数据,但我似乎不能用它做任何事情。
index.html.erb
<a href="#" id="click">Click Me</a>clothing.js.erb
$( "#click" ).on( "click", function(e) {
e.preventDefault();
$.ajax({
type: "GET",
dataType: "json",
url: "/clothing/get_color",
success: function(response){
alert(response);
}
})
});clothing_controller.rb
def get_color
#Query goes here
respond_to do |format|
format.html
format.json { render :json => @color, status: :ok }
end
end当我单击$("#click")链接,查看我的Firebug控制台时,它成功地查询控制器,没有任何错误,并将response显示为blue。
但是,我不能对这个响应做任何事情,比如alert(response)或$("#my_input").val(response)。
我在这里做错了什么有什么想法吗?
发布于 2014-07-02 18:41:20
好吧,我想出来了。结果是在JSON请求之后触发了“错误”,而不是成功,尽管它是以200的状态进行响应的。
所以,我找到了这样的帖子here,解释添加:success=> "success"。因此,我将控制器代码更改为:
respond_to do |format|
format.json { render :json => { :success => "success", :status_code => "200", :color => @color } }
end这起作用了!
发布于 2014-07-01 22:50:14
在尝试输出响应之前,可能需要执行响应的JSON.stringify()操作。
检查这个链接Objects/JSON/stringify
https://stackoverflow.com/questions/24519963
复制相似问题