@denisenki

XMLHttpRequest как получить данные из json?

Коллеги, подскажите пытаюсь сделать конвертер валют, есть json
{
"usd": 68
}

есть js
let inputRub = document.querySelector('rub'),
    inputUsd = document.getElementById('usd');
    console.log(inputRub);
    console.log(inputUsd);

    inputRub.addEventListener('input', () => {
        let request = new XMLHttpRequest();

        //постройка Ajax зарпоса
        //request.open(method, url, acync - по умолчанию true, login, pass);
        request.responseType =	"json";
        request.open('GET', 'current.json');

        //Метод работы с заголовками
        request.getResponseHeader("Content-Type", 'aplication/json', 'charset=utf-8');

        //Метод открывает соединение и делает запрос
        request.send(); 

        request.addEventListener('readystatechange', function() {
            if (request.readyState === 4 && request.status == 200) {
                //смотрим ответ от сервера
                console.log(request.responseText);

                let data = JSON.parse(request.response);
                console.log(data.usd);
                inputUsd = inputRub.value / data.usd;
            } else {
                inputUsd = 'Что-то пошло не так';
            }
        });
    });


и HTML
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script src="test.js"></script>
    <label>RUB</label>
    <input id="rub" type="number" value="1">
    <label>USD</label>
    <input id="usd" type="text" >
</body>
</html>


но что-то не работает, пишет в консоли test.js:33 Uncaught DOMException: Failed to read the 'responseText' property from 'XMLHttpRequest': The value is only accessible if the object's 'responseType' is '' or 'text' (was 'json').
at XMLHttpRequest. (localhost:8888/test.ru/test.js:33:37)
запускаю все это на локальном сервере, что это за ошибка и как ее вылечить?
  • Вопрос задан
  • 62 просмотра
Пригласить эксперта
Ответы на вопрос 1
joeberetta
@joeberetta Куратор тега JavaScript
Читай: https://epdf.pub/google-for-dummies.html
Вам же ошибка прямым текстом говорит. На 33 строке json замените на '' или 'text'
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы