我正在开发一个项目,其中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中的意外标记
感谢。
答案 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);
}
)