1

我想发出一些 http 请求并始终返回状态 200,因为如果我返回其他状态,浏览器控制台将记录它,我想避免这种情况。我读到了JSend,我想知道是否有任何方法可以捕捉到它的响应,如下所示:

this.http.post("/login", JSON.stringify(credentials))
  .map(result => result.json())
  .subscribe(
    data =>this.router.navigate(["home"]),
    () => this.router.navigate(["login"], {queryParams: {error: true}})
  );

我想避免用 ifs 询问后端响应,如果有任何其他好的方法来做到这一点也是受欢迎的。

4

1 回答 1

0

你的语法是错误的。您缺少错误处理方法error的参数

this.http.post("/login", JSON.stringify(credentials))
  .map(result => result.json())
  .subscribe(
    data =>this.router.navigate(["home"]),
   ////////////////////////////////////////////////////////////////////
    (error) => this.router.navigate(["login"], {queryParams: {error: true}})
   ////////////   error is argument for error handler     //////////////
   ////////////////////////////////////////////////////////////////////
  );

Angular 官方文档

于 2017-07-01T17:43:19.933 回答