Javascript Can';在Angular 5中,无法以字符串形式获取http响应

Javascript Can';在Angular 5中,无法以字符串形式获取http响应,javascript,angular,typescript,rxjs,Javascript,Angular,Typescript,Rxjs,给定源代码 @Injectable() 导出类HomeContentService{ 构造函数(私有http:HttpClient){} getContent():可观察{ 让fileURI='/assets/content/home.md'; 让opt={responseType:'text'}; 返回this.http.get( fileURI, 选择 ); } 调用getContent()应该返回一个可观察的。但是,当我运行ng service时,我得到的类型“string”不可分配给类

给定源代码

@Injectable()
导出类HomeContentService{
构造函数(私有http:HttpClient){}
getContent():可观察{
让fileURI='/assets/content/home.md';
让opt={responseType:'text'};
返回this.http.get(
fileURI,
选择
);
}
调用
getContent()
应该返回一个
可观察的
。但是,当我运行
ng service
时,我得到的
类型“string”不可分配给类型“json”

几次尝试后,webpack似乎编译得很好,我没有做任何更改,但只要我关闭进程并再次尝试
ng service
,问题就会再次出现

我猜我的设置
responseType:'text'
有问题,但我不知道是什么。谷歌搜索也没有帮助


有什么想法吗?

我想你没有指定地图。试试这个:

getContent ( ) : Observable< string > {
return this.http.get( YOUR REF )
       .map((res:Response) => res.text())
       .catch((error:any) => Observable.throw(error.json().error || 'Server error'));
} 
getContent():可观察{
返回此.http.get(您的REF)
.map((res:Response)=>res.text())
.catch((error:any)=>Observable.throw(error.json().error | |“服务器错误”);
} 
在res.text u中指定类型,如果响应是json,则将为“res.json()


Sry对于蹩脚英语

您必须内联选项,因为这是TypeScript transpiler推断您想要返回类型
可观察的
的唯一方法

getContent():可观察{
让fileURI='/assets/content/home.md';
返回this.http.get(fileURI,{responseType:'text'});
}

另请参见,请参考alxhub的评论

尝试
让opt={responseType:'text'作为'text'};


解释:

使用
JSON.stringify(response)
问题发生在我可以调用任何结果之前。如果我
返回JSON.stringify(this.http.get…)
,角度组件是否能够订阅可观察对象?此外,它不是JSON字符串,因此将其字符串化似乎是错误的。请求的文件只是标记文本。
getContent(): Observable<string> {
  let fileURI = '/assets/content/home.md';
  return this.http.get(fileURI, { responseType: 'text' });
}