我有一些代码可以对Google货币计算器执行AJAX调用。理论上应该返回一个JSON数组,我可以使用它来获取一些与汇率相关的数据。
链接是:
转到链接显示
{lhs:“1美元”,rhs:“6.49148317中国元”,错误:“”,icc:true}
我的javascript代码(我对POST和GET 感到厌烦):
jQuery.ajax({
type: "GET",
url: "http://www.google.com/ig/calculator",
data: "hl=en&q=1USD=?CNY",
success: function(msg) {
var currency = $.parseJSON(msg);
alert (currency ['rhs'];);
}
});
检查火警错误显示在红色中,回复为空
GET http://www.google.com/ig/calculator?hl=en&q=1USD=?CNY 200 OK 255ms
我做错了什么?
答案 0 :(得分:3)
您无法使用jQuery执行跨域请求。您需要使用JSONP来执行此请求。这些链接可能有所帮助:
http://api.jquery.com/jQuery.getJSON/#jsonp
JSONP请求不受同源策略限制。
答案 1 :(得分:1)
听说谷歌从11月1日起停止了iGoogle的服务。 该链接不再有效。
答案 2 :(得分:1)
据我们所知,谷歌已从2013年11月1日起停止了iGoogle的服务..
但我们可以使用https://www.google.com/finance/converter来获取实时数据。
以下jquery示例将适合您。
function CurrencyConvetor(amount, from, to) {
var result = '';
var url = "https://www.google.com/finance/converter?a=" + amount + "&from=" + from + "&to=" + to;
$.ajaxSetup({async: false});
$.get(url,
function (data) {
var startPos = data.search('<div id=currency_converter_result>');
var endPos = data.search('<input type=submit value="Convert">');
if (startPos > 0) {
result = data.substring(startPos, endPos);
result = result.replace('<div id=currency_converter_result>', '');
result = result.replace('<span class=bld>', '');
result = result.replace('</span>', '');
}
})
return result;
}