Javascript 如何利用ResponseText
序言:请原谅,因为我对处理JSON是个新手 我目前正在使用Rails和jQuery通过JSON检索一些数据。我能够成功地从我的控制器抓取数据,但我似乎什么也做不了 index.html.erb 服装控制器.rb 当我点击Javascript 如何利用ResponseText,javascript,jquery,json,Javascript,Jquery,Json,序言:请原谅,因为我对处理JSON是个新手 我目前正在使用Rails和jQuery通过JSON检索一些数据。我能够成功地从我的控制器抓取数据,但我似乎什么也做不了 index.html.erb 服装控制器.rb 当我点击$(“#click”)链接,查看我的Firebug控制台时,它成功地查询了控制器,没有任何错误,并将响应显示为蓝色 但是,我无法使用此响应执行任何操作,例如警报(响应)或$(“#我的输入”).val(响应) 有没有关于我这里做错了什么的想法?在输出响应之前,您可能需要对响应执行J
$(“#click”)
链接,查看我的Firebug控制台时,它成功地查询了控制器,没有任何错误,并将响应显示为蓝色
但是,我无法使用此响应执行任何操作,例如警报(响应)
或$(“#我的输入”).val(响应)
有没有关于我这里做错了什么的想法?在输出响应之前,您可能需要对响应执行JSON.stringify()
查看此链接好的,我找到了。结果表明,它在JSON请求之后触发了“错误”,而不是成功,尽管它的响应状态为200
因此,我找到了这篇文章,解释如何添加:success=>“success”
。因此,我将控制器代码更改为:
respond_to do |format|
format.json { render :json => { :success => "success", :status_code => "200", :color => @color } }
end
这就成功了 你的回答是什么样的?它是字符串还是对象?您是否尝试过定义error:function()
并查看它是否有任何作用?请尝试console.log(response)以查看响应的外观。我添加了“error”函数,该函数似乎正在启动。但是当我执行console.log(repsonse)
(在错误函数中)时,它会显示状态“OK”和状态(200)。
$( "#click" ).on( "click", function(e) {
e.preventDefault();
$.ajax({
type: "GET",
dataType: "json",
url: "/clothing/get_color",
success: function(response){
alert(response);
}
})
});
def get_color
#Query goes here
respond_to do |format|
format.html
format.json { render :json => @color, status: :ok }
end
end
respond_to do |format|
format.json { render :json => { :success => "success", :status_code => "200", :color => @color } }
end