JQuery AJAX и Google Валютный калькулятор - PullRequest
3 голосов
/ 12 мая 2011

У меня есть код, который выполняет вызов AJAX в калькуляторе валют Google. Который в теории должен возвращать массив 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 ]

3 голосов
/ 12 мая 2011

Вы не можете выполнять междоменные запросы с помощью jQuery.Вам нужно использовать JSONP для выполнения этого запроса.Эти ссылки могут помочь:

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

jsonp с jquery

На запросы JSONP не распространяются ограничения политики того же источника.

1 голос
/ 03 августа 2016

Как мы знаем, Google прекратил работу служб iGoogle с 1 ноября 2013 г. ..

Но мы можем использовать 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;
}
1 голос
/ 17 ноября 2013

слышал, что Google прекратил работу служб iGoogle с 1 ноября. ссылка больше не работает.

...