我刚刚使用angular/cli创建了一个Angular应用程序,并按照他们的教程进行操作。然后我决定使用可观察量和真正的 rest API 包含 http get 请求,并注意到 angular 总是变得空。我尝试了几个公共 rest API(当我将 URL 放入浏览器时,它们确实会返回 json 对象(,但是当我控制台日志返回的对象时,它总是为空。这是我使用公共 API 的服务的最后一段代码:
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { of } from 'rxjs/observable/of';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { catchError, map, tap } from 'rxjs/operators';
@Injectable()
export class myService {
private apiURL= 'https://jsonplaceholder.typicode.com/users';
constructor(private http: HttpClient) { }
getUsers() {
console.log('calling get!');
this.http.get('https://jsonplaceholder.typicode.com/users').pipe(
tap(users => console.log(users))).subscribe(p => {console.log(p);});
console.log('calling get finish!');
}
}
有什么想法吗?
谢谢大家的回答!该问题似乎与我们用于测试调用的浏览器有关(Chrome Canary v65.0.3309.2,禁用了安全性以允许跨源请求(。我们更改了配置以在其他浏览器中运行该应用程序,并且HttpClient现在可以正常工作... -.-