У меня есть базовый HTML-сайт с бэкэндом NodeJS.
В моем бэкэнде NodeJS у меня есть поток аутентификации на основе паспорта, который корректно работает с конечной точкой API / api / login для запуска аутентификации.
В моем HTML у меня есть базовая форма, которая отправляет электронную почту / пароль пользователя:
<form action="api/login" method="POST" class="cozy">
<input type="text" id="email" name="email" class="form-control form-control-rounded" placeholder="Your registered email" required>
<input type="password" id="password" name="password" class="form-control form-control-rounded" placeholder="Your password" required>
<button type="submit" class="btn btn-accent btn-rounded">Login
<i class="fas fa-long-arrow-alt-right ml-2"></i>
</button>
</form>
Если аутентификация прошла успешно, моя конечная точка NodeJS возвращает статус 302 с заголовком Расположение: /app/index.html, который является страницей "панели мониторинга" моего приложения, которая доступно только после входа в систему.
app.post('/api/login',
passport.authenticate('local-login', {
successRedirect: '/app/index.html',
failureRedirect: '/login.html'
})
);
app.get('/app/index.html', ensureAuthenticated, function(req, res) {
return res.sendFile(path.join(__dirname + '/private/index.html'));
});
Теперь вместо перенаправления на эту страницу мой браузер выполняет запрос XHR для / app / index.html , и моя страница панели мониторинга загружается как содержимое ответа на запрос XHR, а не как мой пользователь. перенаправлен на него.
Кто-нибудь имеет представление о том, что я делаю неправильно?