在服務器目錄中,我有一個json文件列表。我需要將每個json 文件名導入到我的angular 2組件或字符串或其他結構中。Angular 2 - 從http.get獲取json文件名
我嘗試使用此服務將http.get創建到Web服務器。
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()我得到這個錯誤:在JSON 意外標記<在位置0。 這是我的組件
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,因爲第一個字符是「<」。請查看Chrome控制檯中的「網絡」選項卡,並查找此http服務發送的請求,並查看響應以確保它是JSON。 –
你在某處使用JSON.parse嗎? – Powkachu
@AhmedMusallam網絡選項卡中的響應類型是text/html,我發送的請求是application/json ..這是問題嗎?我怎樣才能返回一個JSON類型而不是HTML? – ndrn