Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 10.07.2018, 14:51
Интересующийся
Отправить личное сообщение для KatyJ Посмотреть профиль Найти все сообщения от KatyJ
 
Регистрация: 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>
Ответить с цитированием
  #2 (permalink)  
Старый 10.07.2018, 15:18
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Цитата:
No 'Access-Control-Allow-Origin' header is present on the requested resource.
Сервер не отдает специальный заголовок, раньше он видимо был. Почитайте API, если это публичный сервис, возможно что-то поменялось и нужен специальный ключ доступа или еще что, если не публичный, то значит прикрыли дырку)

Последний раз редактировалось Rise, 10.07.2018 в 15:22.
Ответить с цитированием
  #3 (permalink)  
Старый 10.07.2018, 15:20
Интересующийся
Отправить личное сообщение для KatyJ Посмотреть профиль Найти все сообщения от KatyJ
 
Регистрация: 19.03.2018
Сообщений: 13

Спасибо!! Буду искать!

Последний раз редактировалось KatyJ, 10.07.2018 в 15:38.
Ответить с цитированием
  #4 (permalink)  
Старый 10.07.2018, 15:42
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Не знаю, спросите у них почему так стало, как я понял сервис публичный, представлено API на сайте.
Ответить с цитированием
  #5 (permalink)  
Старый 10.07.2018, 16:01
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Можете проксировать через свой сайт, т.е. ajax делать на url: 'https://mysite.ua/exchange.php', а там с php уже делать запрос, тогда отсутствие заголовка доступа не будет действовать.
Ответить с цитированием
  #6 (permalink)  
Старый 10.07.2018, 17:12
Интересующийся
Отправить личное сообщение для KatyJ Посмотреть профиль Найти все сообщения от KatyJ
 
Регистрация: 19.03.2018
Сообщений: 13

Cервис действительно публичный, и о необходимости специальных ключей ничего не пишется. А в консоли сайта, все же выдает, что доступа нет(

Последний раз редактировалось KatyJ, 10.07.2018 в 17:48.
Ответить с цитированием
  #7 (permalink)  
Старый 10.07.2018, 17:23
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

Уже работает)
Ответить с цитированием
  #8 (permalink)  
Старый 10.07.2018, 17:26
Интересующийся
Отправить личное сообщение для KatyJ Посмотреть профиль Найти все сообщения от KatyJ
 
Регистрация: 19.03.2018
Сообщений: 13

В чем причина была?

Последний раз редактировалось KatyJ, 11.07.2018 в 18:50.
Ответить с цитированием
  #9 (permalink)  
Старый 10.07.2018, 17:34
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 07.11.2013
Сообщений: 4,662

В чем я и писал, сейчас появился заголовок доступа, но я здесь не причем, наверное у них там технические работы) И если вам надо только один определенный курс, а не грузить все не нужные, то можно добавить к url ?valcode=CNY, смотрите API пример 3.
Ответить с цитированием
  #10 (permalink)  
Старый 10.07.2018, 18:06
Профессор
Отправить личное сообщение для Rise Посмотреть профиль Найти все сообщения от Rise
 
Регистрация: 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. Причина: //
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
не работает скрипт как ссылка Abraham jQuery 31 14.06.2011 03:04
ссылка с fadeIn работает через раз oblomov86 jQuery 1 24.03.2011 17:52
Сверкающая ссылка. Скрипт не работает в фаерфоксе Wukong Firefox/Mozilla 3 09.09.2010 15:09
Подскажите по CSS меню Александр_1988 Элементы интерфейса 1 17.05.2010 11:58
Не работает ссылка "Все разделы прочитаны" phprus Сайт Javascript.ru 3 30.07.2009 23:50