jQuery AJAX和Google Currency计算器

时间:2011-05-12 02:49:04

标签: javascript jquery currency

我有一些代码可以对Google货币计算器执行AJAX调用。理论上应该返回一个JSON数组,我可以使用它来获取一些与汇率相关的数据。

链接是:

  

http://www.google.com/ig/calculator?hl=en&q=1USD=?CNY

转到链接显示

  

{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

我做错了什么?

3 个答案:

答案 0 :(得分:3)

您无法使用jQuery执行跨域请求。您需要使用JSONP来执行此请求。这些链接可能有所帮助:

http://api.jquery.com/jQuery.getJSON/#jsonp

jsonp with jquery

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;
}