Varför antar httpclient i Angular 4 att den begäran jag skickar är JSON-data


Jag använder Angular 4 HTTP-klient till en server som returnerar textdata, så för det gjorde jag något som nedan

this.http.get('assets/a.txt').map((res:Response) => 
res.text()).subscribe((data: any) => {
  console.log(data.text());
});

Jag sa inte till någonstans att svaret ska vara i JSON-format, men ändå uppstår följande fel

SyntaxError: Ov väntat tecken a i JSON vid position 0 vid Object.parse() vid XMLHttpRequest.onLoad

På vilken grund antar dessa människor att svaret är i json-format :)

Svar #1

Svaret från nya HttpClient är JSON som standard. Om du vill få svaret i ett annat format kan du ställa in det via requestOption responseType: 'text'. Här är mer information om denna implementation: https://angular.io/guide/http#requesting-non-json-data

Ett exempel:

this.http.get('assets/a.txt', { responseType: 'text' }).map((res:Response) => 
res).subscribe((data: any) => {
  console.log(data);
});