Angular 角度服务不使用http.get observable
我正在尝试使用http.get从服务器检索json文件,并从组件订阅可观察的内容。但是,它返回的是一个错误,而不是数据 你能告诉我哪里出了问题吗:Angular 角度服务不使用http.get observable,angular,http,rxjs,observable,Angular,Http,Rxjs,Observable,我正在尝试使用http.get从服务器检索json文件,并从组件订阅可观察的内容。但是,它返回的是一个错误,而不是数据 你能告诉我哪里出了问题吗: import { Injectable } from '@angular/core'; import { Http } from '@angular/http'; import { Observable } from 'rxjs'; @Injectable() export class MoviesService { constructor(
import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import { Observable } from 'rxjs';
@Injectable()
export class MoviesService {
constructor(private http: Http) {
}
getMovies() : Observable<any> {
let url = API_URL;
return this.http.get(url);
}
}
我正在使用Angular和rxjs库的最新版本
请提供帮助。使用HttpClient而不是
Http
Http
返回类型为Response
的对象。您必须对其调用json()
方法,该方法将为您提供所需的数据
要避免这样做,请使用HttpClient
。要使用HttpClient
,您必须首先将HttpClientModule
添加到模块的imports
数组中
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class MoviesService {
constructor(private http: HttpClient) {
}
getMovies() : Observable<any> {
let url = API_URL;
return this.http.get(url);
}
}
从'@angular/core'导入{Injectable};
从'@angular/common/http'导入{HttpClient};
从“rxjs”导入{Observable};
@可注射()
出口级电影服务{
构造函数(专用http:HttpClient){
}
getMovies():可观察。这是获取电影详细信息的安全且免费的API。您必须首先创建API密钥。您可以这样做。在我的例子中,我的app.module.ts文件的imports部分既有HttpClientTestingModule,也有HttpClientModule
从app.module.ts中删除HttpClientTestingModule修复了我的问题
角度:11.0.9
包裹
版本
@角度设计/建筑师
0.1100.7
@角度开发套件/构建角度
0.1100.7
@角形devkit/核心
11.0.7
@角度传感器/示意图
11.0.7
@角度/cdk
11.2.5
@角度/客户端
11.0.7
@角/材料
11.2.5
@示意图/角度
11.0.7
@示意图/更新
0.1100.7
rxjs
6.6.6
打字稿
4.0.7
是否在控制台上看到任何错误?打开浏览器中的DEV工具,导航到网络选项卡,单击过滤器,查看XHR部分,查看请求并检查它是否成功响应。如果我的答案没有解决您的问题,请考虑创建StasBLIZE演示,以便有人可以查看它。您可以在这里创建一个:@ SIDDHARTHAJMEra请查看您使用的API不安全的链接。请尝试使用安全API获取电影。我使用的是angular 6。它找不到@angular/common/http。只能从@angular/http导入http。请检查编辑器url:不安全的API调用是问题所在。非常感谢您的帮助。我在GitHub上托管了该API,它工作正常.我被限制在测试中使用相同的API数据。
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Observable } from 'rxjs';
@Injectable()
export class MoviesService {
constructor(private http: HttpClient) {
}
getMovies() : Observable<any> {
let url = API_URL;
return this.http.get(url);
}
}