In einem Server-Verzeichnis habe ich eine Liste von JSON-Dateien. Ich muss jeden Json Dateiname in meine eckige 2-Komponente in einem Array von String oder anderen Struktur importieren.Angular 2 - Get JSON-Dateinamen von http.get
Ich habe versucht, ein http.get mit diesem Service zum Webserver zu machen.
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);
}
}
Aber wenn in meiner Komponente Ich nenne anutenteservice.getFiles() ich diesen Fehler: unerwartetes Token < in JSON an Position 0. Dies ist meine Komponente
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);
}
}
Ich verstehe nicht, wo der Fehler ist. Was soll ich machen?
Sieht so aus, als ob die Anfrage, die Sie senden, HTML nicht JSON zurückgibt, da das erste Zeichen "<" ist. Sehen Sie sich die Registerkarte "Netzwerk" in der Chrome-Konsole an und finden Sie die Anfrage, die dieser http-Dienst sendet, und sehen Sie sich die Antwort an, um sicherzustellen, dass es JSON ist. –
Verwenden Sie JSON.parse irgendwo? – Powkachu
@AhmedMuslamam der Antworttyp in Netzwerk Registerkarte ist Text/HTML und die Anfrage, die ich sende ist Anwendung/JSON .. Ist das das Problem? Wie kann ich einen JSON-Typ anstelle von HTML zurückgeben? – ndrn