我刚刚使用angular / cli创建了一个Angular应用程序,并按照他们的教程进行操作。然后我决定使用observables和一个真正的rest API包含http get请求,并注意到angular总是变为null。我尝试了几个公共休息API(当我将URL放在浏览器中时它们会返回json对象)但是当我控制日志时返回的对象始终为null。这是我使用公共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现在正常工作... -.-