控制台错误,因为无法访问端点并且无法加载应用程序

时间:2019-01-24 13:43:28

标签: angular typescript

我已将Angular 5升级到7,并保持 rxjs-compat 。在这种情况下,应用程序运行正常,但是后来我们删除了 rxjs-compat 并进行了相应的更改。而且加载时出现错误 在引导应用程序时将应用程序标记为“ 设置不可达”。 我们正在使用

"@ngx-config/core": "7.0.0",
"@ngx-config/http-loader": "7.0.0",

我怀疑此软件包在升级后会产生一些问题。但是编译成功,只有在运行应用程序时,它才会显示控制台错误,因为端点无法访问。     其他任何人都面临着这个问题,或者任何想法如何调试这类问题。

任何帮助将不胜感激

编辑

经过进一步分析,我发现此错误是由于@ ngx-config更新而发生的,与rxjs-compat无关。

// for config loader
export function configFactory(http: HttpClient): ConfigLoader {
  return new ConfigHttpLoader(http, environment.configFile);
} 

拦截器

intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> { 
//etc
})

1 个答案:

答案 0 :(得分:0)

我尝试了github和SO中提到的许多方法,对我而言没有任何锻炼。我要做的最后一件事是

在应用程序引导之前在主.ts中调用config并在会话存储中进行设置,您可以创建一个类文件,并在那里进行逻辑处理。

const url = "configurl"// read from your environment file
const xmlHttp = new XMLHttpRequest();
      xmlHttp.onreadystatechange = () => {
        if (xmlHttp.readyState === 4 && xmlHttp.status === 200) {
          if (xmlHttp.responseText) {
            const config: any = JSON.parse(xmlHttp.responseText);
            if (config) {
             window.sessionStorage.setItem("config", JSON.stringify(config));

            }
        }
      };
      xmlHttp.open("GET", url, true);
      xmlHttp.send(null); 

Appmodule

export function configFactory(http: HttpClient): ConfigLoader {
  return new ConfigStaticLoader(JSON.parse(window.sessionStorage.getItem("config")));
} 

这对我来说很好。

最初的问题是,我无法同时使用配置加载程序和http拦截器。