当我不使用ssr进行服务时它起作用,但是当我仅运行服务器端渲染时,就会出现问题。我在调用api的地方还有其他组件,它们工作正常。
我认为这是一个问题,任何人都可以解释其发生的原因以及什么是好的解决方案 How to render angular4 universal with query parameter route
npm run build:ssr && npm run serve:ssr
我认为这是一个问题,任何人都可以解释其发生的原因以及什么是好的解决方案 How to render angular4 universal with query parameter route
指向该组件的链接就像mysite.com/reset-password?token=sddskllksdldslkdslkdssewl
ts文件中有一个api,可以调用该api来检查令牌是否有效。 当我尝试在ssr处于打开状态时在浏览器中打开“重置密码”链接时,则根本无法加载页面,chrome选项卡中的加载器一直在旋转,但是页面中没有代码被执行,network选项卡中没有活动在控制台中。
当我仅删除以下代码时,页面就会加载。
this.http.post(environment.MY_BACKEND_HOST + 'api/check-reset-password-token', token).subscribe((response: any)=>{
this.token = true;
},(error: any)=>{ console.log(error); this.token = false; });
...路由
{
path: 'reset-password',
component: ResetPasswordComponent
}
... ts代码
constructor(private formBuilder: FormBuilder, private auth: AuthService, private route: ActivatedRoute, private router: Router, private toastr: ToastrService, private renderer: Renderer2, private http: HttpClient) {
route.queryParams.subscribe(params=>{
if (this.router.url.indexOf('/reset-password') > -1) {
this.form.token = params['token']
if(this.form.token) {
this.LoadingOnTokenCheck = true;
} else {
this.router.navigate(["/"]);
}
}
});
}
ngOnInit() {
this.resetPassword = this.formBuilder.group({
password: ['', [Validators.required, Validators.minLength(8)]],
password_confirmation: ['', Validators.required],
})
const token = {
token: this.form.token
}
if(this.form.token) {
console.log(token)
this.http.post(environment.MY_BACKEND_HOST + 'api/check-reset-password-token', token).subscribe((response: any)=>{
this.token = true;
},(error: any)=>{ console.log(error); this.token = false; });
}
}