Я пытаюсь создать функцию, которая возвращает последний заблокированный домен с моего сервера pihole.
Сначала я создал вызов JSON, так как первый вызов, который мне был нужен, был в формате JSON, все это работает, и я получаю необходимые данные.
Однако вторая функция, которая мне нужна, — это получение данных в виде простого текста, и она не работает, она просто возвращает пустое тело []
.
Это функция
socket.on("pihole_last", function() {
setInterval(function() {
let settings = {
method: "Get",
headers: {
"Accept": "text/html"
}
};
fetch('http://domain/admin/api.php?recentBlocked', settings)
.then(res => res.text())
.then((data) => {
console.info(data);
}).catch(error => {
return error;
});;
}, 1000)
});
Функция JSON, которая работает, выглядит практически одинаково, единственное отличие — это принятие заголовка и res.text()
, который должен извлекать данные в виде простого текста?
Данные, возвращаемые из URL-адреса, представляют собой обычный текстовый домен, без тегов, без ничего.
В соответствии с этим проблема из pi-hole GIT вы должны предоставить некоторую форму аутентификации. Вопросу, на который вы ссылаетесь в своем комментарии, уже 5 лет, в то время это было непреднамеренным поведением.
Если я правильно понимаю, Описание API один из способов авторизации должен работать с этим URL-адресом:
http://domain/admin/api.php?recentBlocked?auth=YOUR_TOKEN
YOUR_TOKEN
должен быть в:
Authorization & Token required (see WEBPASSWORD in /etc/pihole/setupVars.conf)
о, спасибо! Я читал этот discourse.pi-hole.net/t/pi-hole-api/1863, в котором не упоминается необходимость аутентификации для этой конечной точки, но, глядя на исходный файл API, я вижу, что он действительно требуется, спасибо.
Я пытался следовать этому stackoverflow.com/questions/36840396/… - но безуспешно.