10.07.2018, 14:51
|
Интересующийся
|
|
Регистрация: 19.03.2018
Сообщений: 13
|
|
Не работает ссылка на получение курса валют
Добрый день! Помогите пожалуйста! Пол года назад, делала такой конвертер валют, который пересчитывает из гривен в юань, с учетом комиссии за обмен. Курс валют загружается с сайта НБУ по этой ссылке https://bank.gov.ua/NBUStatService/v...ctory/exchange
Все работало. Но вот с какогото момента курс не загружается. И соответственно конвертер не работает(( Может кто знает, в чем может быть причина?
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
Гривны<input type='text' id='val3'>
Юани по гривнам<input type='text' id='rezultat2' disabled><br>
Юани<input type='text' id='val1'>
Гривны по юаням<input type='text' id='rezultat' disabled>
<script>
var course = 0;
$.ajax({
type: 'get',
url: 'https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange',
dataType: 'xml',
success: function(response) {
$(response).find("currency").each(function(i,elem) {
if($(elem).find('r030').text() == '156') {
course = +$(elem).find('rate').text();
// alert(course);
}
})
}
});
$('input').on('keyup',function(){
var value1, value3;
value1 = parseFloat($('#val1').val()).toFixed(2);
// course = 3.8;
value3 = parseFloat($('#val3').val()).toFixed(2);
//с гривен в юани
if(value3 <= 799){
$('#rezultat2').val(value3 / course);
}
if(value3 >= 800){
$('#rezultat2').val((value3 - 124) / course);
}
if(value3 >= 1600){
$('#rezultat2').val((value3 - 204) / course);
}
//с юаней в гривны
if(value1 <= 199){
$('#rezultat').val(value1 * course);
}
if(value1 >= 200){
$('#rezultat').val((value1 - 31) * course);
}
if(value1 >= 500){
$('#rezultat').val((value1 - 51) * course);
}
});
</script>
|
|
10.07.2018, 15:18
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Цитата:
|
No 'Access-Control-Allow-Origin' header is present on the requested resource.
|
Сервер не отдает специальный заголовок, раньше он видимо был. Почитайте API, если это публичный сервис, возможно что-то поменялось и нужен специальный ключ доступа или еще что, если не публичный, то значит прикрыли дырку)
Последний раз редактировалось Rise, 10.07.2018 в 15:22.
|
|
10.07.2018, 15:20
|
Интересующийся
|
|
Регистрация: 19.03.2018
Сообщений: 13
|
|
Спасибо!! Буду искать!
Последний раз редактировалось KatyJ, 10.07.2018 в 15:38.
|
|
10.07.2018, 15:42
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Не знаю, спросите у них почему так стало, как я понял сервис публичный, представлено API на сайте.
|
|
10.07.2018, 16:01
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Можете проксировать через свой сайт, т.е. ajax делать на url: 'https://mysite.ua/exchange.php', а там с php уже делать запрос, тогда отсутствие заголовка доступа не будет действовать.
|
|
10.07.2018, 17:12
|
Интересующийся
|
|
Регистрация: 19.03.2018
Сообщений: 13
|
|
Cервис действительно публичный, и о необходимости специальных ключей ничего не пишется. А в консоли сайта, все же выдает, что доступа нет(
Последний раз редактировалось KatyJ, 10.07.2018 в 17:48.
|
|
10.07.2018, 17:23
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
Уже работает)
|
|
10.07.2018, 17:26
|
Интересующийся
|
|
Регистрация: 19.03.2018
Сообщений: 13
|
|
В чем причина была?
Последний раз редактировалось KatyJ, 11.07.2018 в 18:50.
|
|
10.07.2018, 17:34
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
В чем я и писал, сейчас появился заголовок доступа, но я здесь не причем, наверное у них там технические работы) И если вам надо только один определенный курс, а не грузить все не нужные, то можно добавить к url ?valcode=CNY, смотрите API пример 3.
|
|
10.07.2018, 18:06
|
Профессор
|
|
Регистрация: 07.11.2013
Сообщений: 4,662
|
|
JSON тоже можно:
var course;
$.getJSON('https://bank.gov.ua/NBUStatService/v1/statdirectory/exchange?json&valcode=CNY', function(data) {
course = data[0].rate;
});
А так лучше ошибки обрабатывать конечно:
$.ajax({
// ...
error: function() {
// ...
}
});
$.getJSON('...', function(data) {
// ...
}).fail(function() {
// ...
});
Последний раз редактировалось Rise, 10.07.2018 в 18:28.
Причина: //
|
|
|
|