无法从Nginx和后端获得多个错误

时间:2019-06-11 12:32:21

标签: angular nginx angular5 http-error

在使用Angular5-NodeJS Express应用程序创建维护模式时遇到一些问题。

我有一个登录页面,我需要捕获503。如果我有503,则设置维护页面。 Nginx服务器配置生成503错误,但是我的网络出现两个错误。首先是504,然后是503。而且我无法获得503错误。

我尝试使用纯nginx配置,在条件下返回503(我知道了,但仅在NGINX的FETCH类型上使用)。我在Angular上尝试过handleError(error){console.log(error)},但我只收到第一个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错误TOO。不只是504。如果您有任何想法...谢谢大家!

0 个答案:

没有答案