Не удается получить несколько ошибок из nginx и бэкэнда - PullRequest
0 голосов
/ 11 июня 2019

У меня проблемы с созданием режима обслуживания в приложении Angular5-NodeJS Express.

У меня есть страница входа в систему, и мне нужно поймать 503. Если у меня есть 503, я устанавливаю страницу обслуживания. Ошибка 503 генерируется конфигурацией сервера Nginx, но моя сеть получает две ошибки. Сначала 504, а после 503. И я не могу получить ошибку 503.

Я пробовал чистую конфигурацию nginx с возвратом 503 при определенных условиях (и я получил его, но только по типу FETCH от NGINX). Я пробовал handleError (error) {console.log (error)} на Angular, и я получил только первую ошибку 504. Мой метод входа на authService - это обещание (для вашей информации).

Я попытался с помощью nginx использовать add_header 'Access-Control-Allow-Origin' *; без успеха.

Angular 5 (auth.service.ts)
private handleError(error: any): void {
        const forbiddenStatus = [401, 403];
        const message = this.helperService.getErrorMessage(error);

        if (error.status === 503) {
            this.router.navigate(['/maintenance']);
        }

        if (forbiddenStatus.includes(+error.status)) {
            this.logout();
        } else if (error.status === 400) {
            console.log('ERROR : ', error);
        }
}

This is for the handleError code. I can catch 400 error and i have what i want. But that all.

And for nginx : 

NGINX
location / {
      ....................
}

if (-f "home/sites/server/maintenance_on") {
            set $maintenance "1";
        }

        if ($request_method = "OPTIONS") {
            set $maintenance "${maintenance}1";
            return 200;
        }

        if ($maintenance ~* "1") {
            'Access-Control-Allow-Origin' *;
            return 503;
        }
}

Мне просто нужно получить ошибку 503 ТОО. Не только 504. Если у вас есть идеи ... спасибо за все!

...