从维基百科获取 Api 个结果 - 错误

Fetch Api results from Wikipedia - error

我必须写一个代码,从维基百科获取信息,我写了这个:

function getInfo() {
    let search = "Teatr Wielki";

    fetch("https://en.wikipedia.org/w/api.php?&origin=*&action=opensearch&search=" + search + "&limit=5", {
        headers: {
            'Accept': 'application/json',
        },
    }).then(response => response.json())
      .then(addInfo)
      .catch (e => requestError(e));

    function addInfo(data) {
        console.log(data);
        const info = data.results[3][1];
        if (info) {
            document.querySelector('#results').innerHTML = info;
        } else {
            document.querySelector('#results').innerHTML = 'Unfortunately, no info was returned for this data.'
        }
    }

    function requestError(e, part) {
        console.log(e);
        document.querySelector('#results').innerHTML = '<br>Oh no! There was an error making a request for this place';
    }
}

但是这段代码returns出错了:

TypeError: Cannot read property '3' of undefined at addInfo.

我尝试使用许多选项,例如:仅 [0]、仅 [1] - 但没有任何效果。也许你们中的一些人知道我的代码有什么问题? 感谢您的每一次提示。

从维基百科 (mediawiki) api 返回的数据没有 results 键。服务器的响应是单个数组。

因此,要获取结果,在您的代码中,您必须按下 results 键并直接访问数据对象:

const info = data[3][1];

您的工作代码:https://jsfiddle.net/mrlew/cq73byu8/