无法以JSON格式提取角度为4的_body响应

时间:2018-01-05 12:53:30

标签: json angular angular4-httpclient

我正在使用angular 4.2.6作为我的应用程序。我有这样的服务

checkStaff(email: any) {

  return this._http.post(this.url + "/Impsapi/getStaff", JSON.stringify(email)).map(
    (resp) => resp
  )

}

checkStaff(电子邮件:任何){      返回     this._http.post(this.url + “/ Impsapi / getStaff”,JSON.stringify(电子邮件))。图(       (RESP)=> RESP     )

}

this.loginServ.checkStaff(this.user)
  .subscribe(
    userData => {
      this._return = userData;
      console.log(this._return);
    }
  );

服务器返回JSON作为响应。但是当我记录输出时,我得到以下内容 logged response

请我需要使用响应正文中的数据。我无法将._body转换为适当的json并用于应用程序。请帮忙

3 个答案:

答案 0 :(得分:0)

响应数据采用JSON字符串形式。应用程序必须通过调用res.json()将该字符串解析为JavaScript对象。

return this._http.post(this.url + "/Impsapi/getStaff", JSON.stringify(email)).map(
    (resp) => resp.json()
  )

<强>更新 请尝试以下代码段

checkStaff(email: any) {
    return this._http.post(this.url + "/Impsapi/getStaff", JSON.stringify(email))
    .map(res => {return res.json()})


  }

答案 1 :(得分:0)

试试这个:

this.loginServ.checkStaff(this.user)
  .subscribe(
    userData => {
      this._return = userData.json();
      console.log(this._return);
    }
  );

我的意思是你的checkStaff:

checkStaff(email: any): Observable<Response> {

  return this._http.post(this.url + "/Impsapi/getStaff", JSON.stringify(email));

}


export classMyResp
{
id: string;
 /*so on...*/
}

这会给你反应的主体如果有的话。

答案 2 :(得分:0)

我的问题解决了。我的PHP托管在wampserver上。在某种程度上,当我调用服务器时总是返回无效的JSON。我不得不使用ob_clean()函数,一切都很好。