我正在使用拦截器添加api标头。我在ngOnInit函数中调用了一些API。对于正常的服务来说,它工作正常。但是在ssr生成和服务中,不会调用api,也不会呈现页面,但会显示正在加载。如果我评论了ngOnInit中的api调用,则可以正常工作。我怎么解决这个问题??请帮忙。
我的component.ts函数
response = requests.request(
"POST",
"http://XXX.XXX.XXX.XXX/fw2",
data=payload,
files={files["file"].name : (files["file"].filename, files["file"].file, files["file"].mimetype)}
)
fetchUser()是使用拦截器的api调用函数。 此功能不适用于ssr构建。
答案 0 :(得分:1)
根据情况,您似乎在SSR代码中使用了与客户端相关的内容,这就是未调用您的API并保持加载的原因。
使用SSR时,始终是保持platformBrowser检入代码的好方法,只需更改以下代码-
constructor(private router: Router) { }
ngOnInit() {
if (isPlatformBrowser(this.platformId)) {
this.fetchData();
}
}
fetchData() {
this.authController.fetchUser
.subscribe((params) => {
this.id = +params['id'];
this.user = this.authController.getUser(this.id)
});
}