2017-07-01 56 views
0

我想要做一些HTTP请求,并总是返回状态200,因为如果我回到其他状态的浏览器控制台将记录它,我想避免这种情况。我读到JSend,我想知道是否有无论如何要抓住它的反应做这样的事情:使用JSEND与角2个请求

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打听才知道后端响应,如果有任何其他的好办法这样做也是受欢迎的。

+0

使用**的Json服务器**这可以轻松完成。这里是一个[**中的帖子**](https://medium.com/codingthesmartway-com-blog/create-a-rest-api-with-json-server-36da8680136d),它将指导你完成。 – Aravind

+0

不正是我一直在寻找,因为我有在Java中做了一个后端,这一个是接收请求并返回JSON,那么角2得到的结果,我需要知道,如果它是错误或不(无使用状态代码,因为浏览器的控制台将记录它,我不希望出现这种情况) – Motomine

回答

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 Official Document

+0

没有它工作得的说法,这个问题是不是角度不醒目的错误,它的问题是,只捕获它当状态码不是200,并且控制台日志也是这样(我不想这样) – Motomine

+0

这就是'http'请求通常的行为方式。 '200'表示**成功**。你还期待什么? – Aravind

+0

我知道,我知道,我想知道是否有反正知道的东西,如“成功”或“错误” withot做的,如果(data.success){...}否则{...},承诺做到这一点但考虑到状态代码,但上面 – Motomine