gpt4 book ai didi

ruby-on-rails - 在 Rails 中通过 AJAX 调用呈现 JSON

转载 作者:行者123 更新时间:2023-12-01 08:12:35 25 4
gpt4 key购买 nike

我有一个 ajax 调用来从返回 JSON 数据的 Flickr API 获取信息。我想在我的 View 中显示 JSON 数据的值。我通过使用 jQuery 编辑一些innerHTML 来做到这一点。我遇到的问题是数据未定义,因此看起来像是范围界定问题。

照片.js

jQuery(function() {
$('#<%=p[:id]%>').click(function (e) {

//ajax call to fetch photo info

var fetch_id = '<%=p[:id]%>';
var fetch_secret = '<%=p[:secret]%>';

$.ajax({
type: 'GET',
url: '/photos/fetch_info',
dataType: 'json',
data: { 'id' : fetch_id, 'secret' : fetch_secret },
success: function(data){

console.log(data) //returns Object
console.log(data.title) //returns appropriate title

//edit innerHTML of basic_modal
$('.basic_modal').html(
"<div id='modal_image'><%= escape_javascript(image_tag p[:url]) %></div><div id='photo_title'><%=data.title %></div>"
);

//load modal
$('.basic_modal').modal({
overlayClose:true
});

} //end success: function(result)
});

当我将 data.title 打印到控制台时,我得到了适当的标题。但是,当我尝试编辑 HTML 并渲染 <%=data.title %> 时,我收到 undefined variable /方法错误。

有关如何在 View 中显示模式中的数据的任何提示?

这是我的 Controller :

def fetch_info

@info = flickr.photos.getInfo(:photo_id => params[:id], :secret=> params[:secret])

respond_to do |format|
format.json { render :json => @info }
end

end

最佳答案

 var result = jQuery.parseJSON(data);

您不需要这样做,因为datatype:JSON已经解析了数据

$('.basic_modal').html(
"<div id='modal_image'><%= escape_javascript(image_tag p[:url]) %>
</div><div id='photo_title'><%="+data.title+" %></div>"
);

这可能对你有帮助

关于ruby-on-rails - 在 Rails 中通过 AJAX 调用呈现 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12586685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com