【发布时间】:2017-04-27 13:13:07
【问题描述】:
在服务器目录中,我有一个 json 文件列表。我需要将每个 json filename 导入到字符串或其他结构数组中的 angular 2 组件中。
我尝试使用此服务向 Web 服务器创建一个 http.get。
export class AnUtenteService {
getFiles() : Observable<string[]> {
return this.http.get(directory)
.map(this.extractData)
.catch(this.handleError);
}
private extractData(res: Response) {
let body = res.json();
return body.data || { };
}
private handleError (error: any) {
let errMsg = (error.message) ? error.message :
error.status ? `${error.status} - ${error.statusText}` : 'Server error';
console.error(errMsg); // log to console instead
return Observable.throw(errMsg);
}
}
但是当我在我的组件中调用 anutenteservice.getFiles() 时,我得到了这个错误: 位置 0 处的 JSON 中的意外标记 。 这是我的组件
export class OrderslistComponent{
newsList;
errorMessage;
constructor(private anutenteservice: AnUtenteService, private http: Http)
{}
ngOnInit() {
this.anutenteservice.getFiles()
.subscribe(data => this.newsList = data,
error => this.errorMessage = <any>error);
}
}
我不明白错误在哪里。我该怎么办?
【问题讨论】:
-
在我看来,您发送的请求返回的是 HTML 而不是 JSON,因为第一个字符是“
-
你在某处使用 JSON.parse 吗?
-
@AhmedMusallam 网络选项卡中的响应类型是 text/html 而我发送的请求是 application/json .. 这是问题吗?如何返回 json 类型而不是 html?
-
@Powkachu 我尝试使用它但结果没有改变
-
@ndrn 我不确定 res.toJson() 是否会解析 text/html 响应。更大的问题是:响应正文是 json 字符串吗?您可以在这里发布响应标题和正文 (content) 吗?