Отображает только [объект объекта], и не работает с подпути для отображения данных из конечной точки API - PullRequest
0 голосов
/ 07 октября 2018

Я использую API для рисования данных var city = window.location.pathname;var url = '// apiurl';

var infoCity = document.getElementById("info")

fetch(url).then(response => {
    return response.json();
}).then(data => {
    data.innerHTML += data;
    console.log(data);
}).catch(err => {
    console.log("there is an error")
});

Это возвращает мне данные, но не отображает данные в моем html-файле, где у меня есть div с идентификатором "info".

Вместо этого он просто говорит [Object Object], что является моей первой проблемой.

Во-вторых, если пользователь вводит mysite.com/key, я хочу отобразить данные, основанные на этом ключе

У меня настроен HTTP-сервер, но он не работает, когда я набираю localhost.com/8080/key.

Тем не менее, жесткое кодирование ответа, такого как

var url = '//apiurl/specifickey' gets the data.

Ответы [ 2 ]

0 голосов
/ 07 октября 2018

Решение для первой проблемы:

var key = window.location.pathname;
var url = 'apiurl';

var infoCity = document.getElementById("info")

fetch(url).then(response => {
    return response.json();
}).then(data => {
    data.innerHTML += data[0].key;
    console.log(data);
}).catch(err => {
    console.log("there is an error")
});

Хотя до сих пор не выяснили, как сделать динамический запрос, чтобы получить ответ, основанный на URL.

0 голосов
/ 07 октября 2018

Необходимо изменить контекст информационной переменной.

var city = window.location.pathname;
console.log(city);

var url = '//restcountries.eu/rest/v2/capital' + city;
const info = document.querySelector("#info");

fetch(url).then(response => {
    return response.json();
}).then(data => {
    info.innerHTML = data;
    console.log(data);
}).catch(err => {
    console.log("there is an error")
});
...