我只是尝试使用Google API进行快速货币转换,并使用jQuery或Rails方法在rails视图中显示“rate”信息。
返回的JSON采用以下格式:
{"to": "EUR", "rate": 0.74928817599999997, "from": "USD"}
到目前为止,我已尝试过如下的jQuery Ajax请求:
$(document).ready(function(){
$.getJSON('http://rate-exchange.appspot.com/currency?from=USD&to=EUR', function(data) {
var items = [];
$.each(data, function(key, val) {
items.push('<li id="' + key + '">' + val + '</li>');
});
$('<ul/>', {
'class': 'my-new-list',
html: items.join('')
}).appendTo('#exchange');
});
});
我实际上并不需要items数组或无序列表。我刚刚从jQuery文档中复制了大部分内容,以确保它应该正常工作。
我将非常感谢您对此代码的任何帮助,或者是否有更好的Rails方式来实现相同的功能。
答案 0 :(得分:0)
如果您可以从服务器中的rails(而不是浏览器中的javascript)查询Google API,那么请使用
@result=JSON.parse(response_body_as_string)
@result将是一个Ruby哈希对象,您可以根据需要在Rails视图中使用它。
如果您打算从服务器发送到Google API,最好将其作为后台作业,并将结果保存到数据库中一小时。
答案 1 :(得分:0)
如果您想在客户端上执行此操作,可以使用jsonp发出请求(不允许通过不同主机的JavaScript进行正常的HTTP请求):
$.ajax({
type: "GET",
url: "http://rate-exchange.appspot.com/currency?from=USD&to=EUR",
dataType: "jsonp",
success: function(data) {
$('#yourId').html(data.rate); // populate the HTML element with id 'yourId' with the rate
}
});