注意:在问这个问题之前,我去了很多其他答案和博客。我也去过并了解过。 Make AJAX request before bootstrapping Angular2 application正确.. 通过对bootstrapModule的介绍,以前的所有答案都不起作用。并且所有答案都有在angular2的稳定版本中没有的API
问题: 我试图用登录/身份验证解决非常基本的问题。 如果用户复制链接http://domain.com/login,如果他已经登录,我想将他重定向到家。
我尝试的方式是路由更改我检查身份验证然后重定向。但这需要时间,因为必须等到响应回来。我想要的是甚至在角度引导程序发生之前我想进行ajax调用并从服务器获取当前用户。如果用户未登录该呼叫将不会给任何用户,并且该信息应该通过某些服务提供给Angular,请使用authService。 所以在任何地方我们都可以使用authService.user来检查用户是否登录。
不是我可以使用本机JS xmlHttpRequest进行ajax调用并在window对象中存储使用。并在bootstrap访问authService中的窗口对象,工作正常。 但我认为使用窗口对象不是一个好的解决方案。
请指导我可能的解决方案。
下面是我的main.js,我必须使用bootstrapMoudle而不是bootstrap(组件);
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app.module';
const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule)
.catch(err => console.error(err));