在使用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。如果您有任何想法...谢谢大家!