我有一个使用ruby on rails的ajax调用。我正在获得成功,但我不知道如何使用ajax调用的数据结果。
$.ajax({
url: "/search/get_listing?listing_id" + id,
dataType: 'JSON',
success: function(data) {
var listing = JSON.parse(data);
$("#modalPrice").html(data.city);
}
});控制器:
@listings_data = Listings.find_by(id: params[:id])
render :json => @listings_data.to_json使用data.city是行不通的。我希望通过简单的输入获取从模型中检索到的值。在变量上
var listing = JSON.parse(data);还是不走运。帮帮大伙。谢谢!
发布于 2013-09-20 20:01:06
JSON.parse是Ruby代码,JSON gem的API。你们如何在Javascript中使用它:)
jQuery可以直接处理JSON对象data。只需使用:
success: function(data) {
$("#modalPrice").html(data.city);
}发布于 2013-09-20 20:59:18
例如,可以在控制器中渲染:
render :json => { :city => @listings_data }在JS上:
success: function(data) {
var listing = data.city;
}发布于 2013-09-20 17:52:55
每次在rails中使用AJAX时,我都会遇到类似的问题,因为响应似乎因返回值的方式或在JS中处理成功的方式而有所不同。试试这个:
success: function(data, status, xhr) {
var listing = JSON.parse(xhr.responseText);
$("#modalPrice").html(data.city);
}我通常使用Firebug (Firefox插件)在我的成功处理程序中设置断点,以检查响应的确切位置。有时是第一个值,有时是其他值,然后可能是xhr.response,甚至是xhr.responseText。它每次都让我感到困惑。
要使用Firebug,请在页面上按F12,选择“脚本”窗格并找到您想要检查的代码。单击要在其中放置断点的代码行号旁边的。在本例中,您可以选择var listing行。当代码被执行时(在你点击之后),浏览器会停在那里,你可以在右边检查传递的参数。
https://stackoverflow.com/questions/18913429
复制相似问题