【发布时间】:2017-09-17 03:59:18
【问题描述】:
正如标题中所说,当我订阅我的 observable 时,什么都没有发生。控制台或构建过程中没有错误。这是我的代码:
我的服务
getBlueCollars(): Observable<BlueCollar[]> {
return this.http.get(this.defaultAPIURL + 'bluecollar?limit=25').map(
(res: Response) => {
return res.json();
});
}
我的组件
ngOnInit() {
this.planifRequestService.getBlueCollars().subscribe(
data => {
this.blueCollars = data;
console.log('Inner Blue Collars', this.blueCollars);
},
err => console.log(err)
);
console.log('Value BlueCollars : ', this.blueCollars);
}
所以第二个console.log 是用“Value BlueCollars : Undefined”触发的,我订阅的日志永远不会显示。同样,我在 Chrome 的“网络”选项卡中看不到发送的请求。
所以我尝试使用以下代码简化所有内容:
let response: any;
this.http.get('myUrl').subscribe(data => response = data);
console.log('TestRep: ', response);
同样的问题,没有错误,响应未定义。似乎订阅没有触发可观察的。 (网址是正确的,它在我的招摇或邮递员上工作。)
我使用的是 Angular 2.4.9
编辑
所以我尝试在一个全新的项目中复制/粘贴我的请求代码,一切正常。请求被触发,我可以正确获得 JSON 响应。所以我的项目配置中可能有一些东西禁止请求正确触发。
【问题讨论】:
-
你的 Angular 应用程序的 URL 是什么,你调用的后端的 URL 是什么?它们是否具有相同的主机和端口?
-
我们能看到其余的组件代码吗?还是一个笨蛋?
-
据我所知,订阅的语法是正确的——订阅可以接受一个两个或三个函数作为参数,而 OP 有两个,这很好。
-
我在本地运行应用程序,而后端位于远程服务器上。我尝试使用 --disable-web-security --user-data-dir 参数启动 chrom 以禁用 CORS,但仍然无法正常工作。我在一个空组件中尝试了请求,但同样的问题。
-
如果你在控制台的任何地方都没有看到任何红色的东西,我认为这不是 cors 问题
标签: javascript angular angular2-http