这是什么错误?尝试通过回调使用API

问题描述 投票:0回答:1

我正在使用API​​(Rick and Morty 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);
        });
    });
});

它返回一个错误,但是我不确定哪种类型的错误:

yarn run v1.22.4 $ node src / callback / challenge.js错误:错误https://rickandmortyapi.com/api/character在export.XMLHttpRequest.xhttp.onreadystatechange(A:\ Carrera de Backend con JavaScript \ Curso deAsincronismo \ asincronismo \ src \ callback \ challenge.js:12:31)在export.XMLHttpRequest.dispatchEvent(A:\ Carrera de Backend con JavaScript \ Curso deAsincronismo \ asincronismo \ node_modules \ xmlhttprequest \ lib \ XMLHttpRequest.js:591:25)在setState处(A:\ Carrera de Backend con JavaScript \ Curso de Asincronismo \ asincronismo \ node_modules \ xmlhttprequest \ lib \ XMLHttpRequest.js:610:14)在export.XMLHttpRequest.handleError(A:\ Carrera de Backend con JavaScript \ Curso deAsincronismo \ asincronismo \ node_modules \ xmlhttprequest \ lib \ XMLHttpRequest.js:532:5)在ClientRequest.errorHandler(A:\ Carrera de Backend con JavaScript \ Curso deAsincronismo \ asincronismo \ node_modules \ xmlhttprequest \ lib \ XMLHttpRequest.js:459:14)在ClientRequest.emit(events.js:311:20)在TLSSocket.socketErrorListener(_http_client.js:426:9)在TLSSocket.emit(events.js:311:20)在emitErrorNT上(internal / streams / destroy.js:92:8)在emissionErrorAndCloseNT(internal / streams / destroy.js:60:3)在1.51秒内完成。

我了解没有满足if条件,但是我该如何解决?没有提供更多详细信息。

javascript node.js xmlhttprequest
1个回答
0
投票

错误在于网址中。我忘了把/放在最后。因此,在将url与请求的其余部分嵌套在一起时,它无法将字符串识别为有效的url。

© www.soinside.com 2019 - 2024. All rights reserved.