HttpClient尝试将有效负载解析为json

时间:2018-04-08 22:46:40

标签: ruby-on-rails angular httpclient angular5

我正在开发一个项目,其中rails api作为后端,有角度作为前端。在一个特定点上,我需要进行文本/普通呼叫。即使我将content-type设置为'text / plain',HttpClient也会尝试将有效负载解析为json。我无法弄清楚为什么它会像那样。

Rails后端:

def getTranslations
  render plain: 'some plain text'
end

Angular客户:

headers = new HttpHeaders({
  "Content-Type": "text/plain",
  "Accept": "text/plain"
});


this.http.get<any>('http://localhost:3000/getTranslations', { headers: this.headers })
 .map((res:Response) => {
   console.log(res);
   return res.text()
 })
 .subscribe(
   res => {
     console.log(res);
   },
   err => {
     console.log(err);
   }
 )

响应:

“解析https://www.w3schools.com/js/js_json_intro.asp期间的Http失败” JSON中的意外标记

感谢。

1 个答案:

答案 0 :(得分:1)

在查看angular.io文档后,我找到了答案。

我没有通过http.get发出请求,而是将方法调用更改为

this.http.get('http://localhost:3000/getTranslations', { responseType: 'text'} )
  .map((res:string) => {
    console.log(res);
    return res
  })
  .subscribe(
    res => {
      console.log(res);
    },
    err => {
      console.log(err);
    }
  )