在Angular 2请求中使用JSend

在Angular 2请求中使用JSend,angular,angular2-services,jsend,Angular,Angular2 Services,Jsend,我想发出一些http请求并始终返回状态200,因为如果我返回其他状态,浏览器控制台将记录它,我想避免这种情况。我读到了,我想知道是否有任何方法可以捕捉到这样的响应: this.http.post("/login", JSON.stringify(credentials)) .map(result => result.json()) .subscribe( data =>this.router.navigate(["home"]), () => this.

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

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了解后端响应,如果有其他好方法也欢迎。

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

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     //////////////
   ////////////////////////////////////////////////////////////////////
  );

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

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     //////////////
   ////////////////////////////////////////////////////////////////////
  );

使用Json服务器可以轻松完成此操作。这是一个可以指导您完成的。这不是我想要的,因为我有一个用Java制作的后端,这个后端接收请求并返回json,然后Angular 2得到结果,我需要知道这是否是一个错误(不使用状态码,因为浏览器控制台会记录它,我不希望这样)使用Json服务器可以很容易地做到这一点。这是一个可以指导您完成的。这不是我想要的,因为我有一个用Java制作的后端,这个后端接收请求并返回json,然后Angular 2得到结果,我需要知道这是否是一个错误(不使用状态码,因为浏览器控制台会记录它,我不希望这样)如果没有参数,它也在工作,问题不在于angular没有捕捉到错误,而是捕捉到了错误,问题在于只有当状态代码不是200时才会捕捉到错误,控制台日志也会捕捉到错误(我不希望这样),这就是http
请求的一般行为方式<代码>200意味着成功。你还期待什么?我知道我知道,我想知道的是,如果(data.success){…}否则{…},承诺会这样做,但是考虑到状态代码,但是如果你订阅响应,那么有上面提到的问题,两种可能性
1.成功
2.错误
根据执行的回调函数,您可以找到成功或错误。。我清楚了吗?是的,这就是我现在正在做的事情,但是有没有办法在不询问状态的情况下执行一个或另一个?这正是我试图避免的,因为浏览器总是记录错误,而没有它正在工作的参数,问题不是angular没有捕捉到错误,它确实捕捉到了,问题是只有在状态代码不是200时才捕捉到错误,控制台日志也一样(我不希望这样)这就是http
request通常的行为方式<代码>200意味着成功。你还期待什么?我知道我知道,我想知道的是,如果(data.success){…}否则{…},承诺会这样做,但是考虑到状态代码,但是如果你订阅响应,那么有上面提到的问题,两种可能性
1.成功
2.错误
根据执行的回调函数,您可以找到成功或错误。。我清楚了吗?是的,这就是我现在正在做的事情,但是有没有办法在不询问状态的情况下执行一个或另一个?这正是我试图避免的,因为浏览器总是记录错误