Что это за ошибка? Попытка использовать API с обратными вызовами - PullRequest
0 голосов
/ 05 апреля 2020

Я практикую обратные вызовы с API (API Рика и Морти) и использую XMLHttpResquest.

Как видите, это мой код:

let XMLHttpRequest = require('xmlhttprequest').XMLHttpRequest;
let API = 'https://rickandmortyapi.com/api/character';

function fetchData(url_api, callback) {
    let xhttp = new XMLHttpRequest();
    xhttp.open('GET', url_api, true);
    xhttp.onreadystatechange = function(event) {
        if(xhttp.readyState === 4) {
            if(xhttp.status === 200) {
                callback(null, JSON.parse(xhttp.responseText))
            } else {
                const error = new Error('Error ' + url_api);
                return callback(error, null);
            }
        }
    }
    xhttp.send();
}

fetchData(API, function(error1, data1) {
    if (error1) return console.error(error1);
    fetchData(API + data1.results[0].id, function(error2, data2) {
        if (error2) return console.error(error2);
        fetchData(data2.origin.url, function (error3, data3) {
            if (error3) return console.error(error3);
            console.log(data1.info.count);
            console.log(data2.name);
            console.log(data3.dimension);
        });
    });
});

Возвращает ошибку, но Я не уверен, какой тип ошибки:

запуск пряжи v1.22.4 $ node src / callback / challenge. js Ошибка: ошибка https://rickandmortyapi.com/api/character при экспорте. XMLHttpRequest.xhttp.onreadystatechange (A: \ Базовая программа на JavaScript \ Curso de Asincronismo \ asincronismo \ src \ callback \ challenge. js: 12: 31) в файле export.XMLHttpRequest.dispatchEvent (A: \ Carrera de Backend con JavaScript \ Curso de Asincronismo \ asincronismo \ node_modules \ xmlhttprequest \ lib \ XMLHttpRequest. js: 591: 25) в setState (A: \ Carrera de Backend con JavaScript> Curso de Asincronismo \ asincronismo \ node_modules \ xmlhttprequest \ xmlhttprequest \ lib 1019 *: 610: 14. (A: \ Backrend de Backend con JavaScript \ Curso de Asincronismo \ asincronismo \ node_modules \ xmlhttprequest \ lib \ XMLHttpRequest. js: 459: 14) в ClientRequest.emit (события. js: 311: 20) в TLSSocket. socketErrorListener (_http_client. js: 426: 9) в TLSSocket.emit (events. js: 311: 20) в emitErrorNT (внутренний / streams / destroy. js: 92: 8) в emitErrorAndCloseNT (внутренний / streams /destroy.js:60:3) Выполнено в 1.51 с.

Я понимаю, что условие if не выполняется, но как я могу его решить? Не дает мне больше подробностей.

1 Ответ

0 голосов
/ 05 апреля 2020

Ошибка была в URL. Я забыл поставить / в конце. Таким образом, при вложении URL-адреса с остальной частью запроса он не распознал строку как допустимый URL-адрес.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...