Я использую API Fetch для входа в мое веб-приложение с использованием аутентификации Baisc.После успешного входа в систему сервер возвращает токен как объект json.Затем я использую этот токен для отправки запросов другим конечным точкам API.Эти конечные точки просто показывают веб-страницу, если запрос содержит действительный токен.
Все работает нормально, но ничего не отображается в браузере после успешного вызова с API выборки.
Если яВызовите конечную точку API в клиенте REST, он возвращает HTML, который кажется нормальным.Кажется, проблема в том, что браузер должен вызывать URL, а не просто извлекать html.
Вот мой код.Я получаю оповещение «Успех» - так что все, кажется, работает нормально.Но мне нужно, чтобы браузер отображал результат в виде новой страницы (что-то вроде прямого вызова URL с токеном в заголовке).
function login(event) {
event.preventDefault();
let username = document.getElementById("username").value;
let password = document.getElementById("password").value;
let url = URL + 'login';
let headers = new Headers();
headers.append('Authorization', 'Basic ' + btoa(username + ":" + password));
fetch(url, {method:'GET',
headers: headers,
})
.then(function(response)
{
if (response.ok) {
return response.json();
} else {
let error = document.getElementById("login-error");
error.innerHTML = "Username/Password incorrect.";
}
})
.then(function(json)
{
if (typeof(json) !== "undefined") {
startWebapp(json.token);
}
})
.catch(error => console.error('Error:', error));
}
function startWebapp(token) {
let url = URL + 'webapp/overview';
let headers = new Headers();
headers.append('Authorization', 'Bearer ' + token);
fetch(url, {method:'GET',
headers: headers,
})
.then(function(response) {
alert("Success!");
return response;
});
}
Как мне добиться, чтобы браузер действительно вызывалURL с токеном API и открывает его, если выборка прошла успешно?