Angular http get call failling
Angular http get call failling
请查看以下网址:https://stackblitz.com/edit/angular-w4lj6q?file=app%2Fapp.component.ts\n我正在使用http模块,尝试从json文件中获取数据,但是我遇到了以下错误。请有人帮助修复这个问题。\n错误:errors.js:55 ERROR SyntaxError: JSON的位置0处有意外的<标记。
在Angular中,当我们使用http.get调用接口时,有时候会遇到请求失败的问题。这个问题的出现原因是因为在http请求的header中没有添加正确的content-type,导致返回的数据格式不是json而是HTML。
解决方法是在http请求的header中添加content-type,并将其值设置为json。这样可以确保返回的数据格式是json而不是HTML。
示例代码如下:
import { HttpClient, HttpHeaders } from '@angular/common/http'; // ... const httpOptions = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) }; this.http.get('your_api_url', httpOptions).subscribe( (data) => { // 处理返回的数据 }, (error) => { // 处理错误 } );
通过以上代码,我们在http请求的header中添加了content-type,并将其值设置为json。这样就可以确保返回的数据格式是json而不是HTML,从而解决了Angular http get调用失败的问题。
Angular http get请求失败的原因是以下几点:
1. 包含JSON的文件夹名称错误,应为"apiData"而非"apiDta"。
2. Stackblitz无法返回正确的JSON,而是返回HTML。
解决方法如下:
1. 可以使用"reqres"网站提供的示例JSON。
2. 在"NameListService"中更新URL:
private _url: string = "https://reqres.in/api/users";
3. 在"AppComponent"的"ngOnInit()"方法中更新代码:
this._nameService .getNames() .subscribe(res => { this.nameLists = res; console.log(JSON.stringify(this.nameLists)); });
经过测试,这些修改可以解决问题。同时,"reqres"网站也是一个不错的发现 🙂