Всем привет, я новичок новичком) Начал учить работу с API, пытаюсь получить курс доллара с банка Вот код HTML: <!DOCTYPE html> <html> <head> <meta charset='utf-8'> <title>Данные из моно</title> <meta name='viewport' content='width=device-width, initial-scale=1'> <script src='main.js'></script> </head> <body> <p>Курс покупки доллара</p> <p id="USDBuy"></p> <p>Курс продажи доллара</p> <p id="USDSell"></p> <button onclick="getUSD()">Получить Курс</button> </body> </html> Вот код JS Код (Javascript): function getUSD() { var requestURL = 'https://api.monobank.ua/bank/currency'; var request = new XMLHttpRequest(); request.open('GET', requestURL); request.responseType = 'json'; request.send(); request.onload = function() { var res = request.response; pbuy = document.getElementById("USDBuy"); pbuy.innerHTML = res[0].rateBuy; psell = document.getElementById("USDSell"); psell.innerHTML = res[0].rateSell; } } Когда загружаю страницу и нажимаю на кнопку получить кус, все работает, но когда я нажимаю на нее еще раз и все последующие разы - получаю ошибку в консоли: Uncaught TypeError: Cannot read properties of undefined (reading 'rateBuy') at XMLHttpRequest.request.onload (main.js:12) Подскажите, плиз, в чем мой косяк?
кто ж знает.... попробуйте после Код (Javascript): var res = request.response; добавить вывод в консоль Код (Javascript): console.log(res); ну и посмотрите что выдаст в консоль, в первый раз и во второй
Спасибо большое! Получил {errorDescription: 'Too many requests'} Это значит, что банк не хочет, чтобы у них клацал на кнопку каждые 3 секунды и опрашивал API?
типа того.... лимит есть да и курсы ежесекундно не меняются.... достаточно пару раз в день обычно результат кешируют - и обновляют после "протухания" кеша например в js можно в localStorage