Экспресс res.redirect на https не работает

Я прочитал довольно много сообщений с таким же названием. Я пробовал предложения, которые были даны, но не сработало

Я хочу автоматически перенаправлять в производство - если это не защищено. Это приложение angular2, api сервера.

Это первое промежуточное ПО в express app.js

// HTTPS
app.use (function (req, res, next) { 
    if ( req.secure || req.headers.host === 'localhost:3002' ) {
        next();
    } else { 
        res.redirect('https://' + req.headers.host + req.url);
    }
});

Сообщение, которое я получаю от FF, таково

The page isn’t redirecting properly

Firefox has detected that the server is redirecting the request for this address in a way that will never complete.

This problem can sometimes be caused by disabling or refusing to accept cookies.

У меня не отключены файлы cookie. и я не делаю ссылку на протокол в angular, поэтому я не знаю, почему он отказывается от перенаправления. Где я могу посмотреть? Что я могу попробовать?

У вас есть этот код перенаправления на вашем https-сервере? Его там не должно быть, только на вашем http-сервере.

jfriend00 15.03.2018 03:58

@jfriend - у меня только один сервер.

j-p 15.03.2018 07:25

Как у вас может быть только один сервер? У вас должен быть другой сервер для http и https, потому что они на разных портах, а один прослушивает https. Ваш https-сервер НЕ должен выполнять перенаправление. Вероятно, проблема здесь, потому что он создает бесконечный цикл перенаправления, который, вероятно, обнаруживает браузер. Если вы разделяете код между двумя серверами, вам нужно убедиться, что вы НЕ перенаправляете, когда протокол уже https.

jfriend00 15.03.2018 07:27
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
1
3
485
1

Ответы 1

Очевидно, Express инкапсулирует некоторый синтаксический анализ заголовков, и мне нужно было включить

app.enable ('доверенный прокси');

отличная статья - https://www.tonyerwin.com/2014/09/redirecting-http-to-https-with-nodejs.html

Другие вопросы по теме