我在data.text()收到错误,如下所示。我错过了一些图书馆吗?任何人都可以提供任何建议。谢谢
属性'text'在'any []'类型上不存在。'
service.ts
const headers = new HttpHeaders();
headers.set('Content-Type', 'text/sml');
headers.set('Accept', 'text/xml');
headers.set('Content-Type', 'text/xml');
getData(): Observable<any> {
return this.http.get<any>(this.urlNorth, { headers })
.do(data => {
data.text().replace('<string xmlns="http://tmmc.regional/pcms/webservice">', '').replace('</string>', '').replace(/</g, '<').replace(/>/g, '>');
parseString(data, (err, res) => {
if (err) {
return console.dir('invalid XML');
}
else {
console.log(res);
}
})
})
component.ts
export class AppComponent implements OnInit {
data: any ;
errorMessage: string;
constructor(private _appService: AppService) { }
ngOnInit(): void { this.getData(); }
getData(): void {
this._appService.getData()
.subscribe(
(data: any) => this.data = data,
(error: any) => this.errorMessage = <any>error);
}
}
答案 0 :(得分:0)
请勿在http-request中使用任何类型(<any []>
):
在您的服务中:
return this.http.get(this.urlNorth, { headers })
//删除了类型。
和您的组件
(data: any) => this.data = data,
//已删除[]
我在这里使用与您相同的方法添加了一个工作示例,但使用了不同的数据:
https://plnkr.co/edit/29MyR2oPAHtE883AUlFY?p=preview
我正在使用map
而不是do
,但这是因为我无法让do-operator在plunkr中工作。它应该适用于两者。
我在组件中创建了一个方法(最好在服务中执行此操作):
getData(): Observable<any> {
return this.http.get('test.html', {})
.map(data => return data.text(););
}
然后在构造函数中:
this.getData().subscribe(data=>{
console.log("data",data);
this.data = data;
});