Я хочу получить реальные курсы валют из внешнего источника, поэтому я нашел этот замечательный веб-сервис:
Конвертор валют
Этот сервис работает как шарм,Единственным недостатком является то, что он не предоставляет результаты JSONP, только XML.Поэтому у нас возникла проблема с несколькими браузерами при попытке использовать этот веб-сервис с помощью jQuery $ .ajax ().
Итак, я обнаружил Yahoo Query Language , который возвращает результаты в виде JSONP, а также манги для использования другимивеб-сервисы и верните мне результаты.Это также работает, вот пример URL:
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D'http%3A%2F%2Fwww.webservicex.net%2FCurrencyConvertor.asmx%2FConversionRate%3FFromCurrency%3DNOK%26ToCurrency%3DEUR'&format=json&diagnostics=true&callback=cbfunc
Этот URL возвращает результат JSONP и работает как шарм, но проблема возникает, когда я использую это в своем коде:
$.ajax({
type: "GET",
url: urlToWebservice,
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: function(data) {
$("#status").html("OK: " + data.text);
},
error: function(xhr, textStatus, errorThrown) {
$("#status").html("Unavailable: " + textStatus);
}
});
Когда я пытаюсь запустить этот код, ничего не происходит, и я вижу это сообщение об ошибке в моем отладчике javascript в Firebug:
cbfunc is not defined
cbfunc - это имя контейнера, который окружает ответ JSON, но почемуон говорит не определено?
РЕДАКТИРОВАТЬ:
Это мой новый код, но я все еще получаю cbfunc is not defined
$.ajax({
url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D'http%3A%2F%2Fwww.webservicex.net%2FCurrencyConvertor.asmx%2FConversionRate%3FFromCurrency%3DNOK%26ToCurrency%3DEUR'&format=json&callback=cbfunc",
dataType: 'jsonp',
jsonp: 'callback',
jsonpCallback: 'cbfunc'
});
function cbfunc(data) {
alert("OK");
}
Исообщение "ОК" никогда не запускается ...