Angular 2,尝试使用http.get时出现localhost / null错误?

时间:2016-07-06 18:28:44

标签: javascript angularjs node.js angular

我正在使用Angular 2制作网页。当我加载页面时,我使用OnInit运行以下方法(替换了通用名称):

getAllObjects(): Promise<object[]>{
    return this.http.get(this.getAllObjectsUrl).toPromise().then(response => response.json().data).catch(this.handleError);
}

我在浏览器中验证了getAllObjects url确实以JSON格式返回了object数组。如果有帮助,这是网址:

private getAllObjectsUrl : 'http://99.240.124.235:7060/REST/rest/companyService/getAllCompanies.json/';

但是,此方法触发handleError catch,浏览器的调试日志显示GET localhost:3000/null 404 NOT FOUND(我使用npm服务器运行它,因此是localhost)。

我不相信这是一个CORS问题,因为我下载了Chrome CORS插件,其他API调用也有效。只有这个特殊的API网址导致了一个问题,我发现这很奇怪,因为我的其他API调用工作并且它们遵循完全相同的格式(除了不同的网址)。

我想也许appComponent不允许使用OnInit,但是我用不同的工作API调用替换了getAllObjects(),我没有收到此错误。

我完全陷入困境,任何帮助都会受到赞赏(这个错误可能是因为网络API,而不是前端吗?)。

1 个答案:

答案 0 :(得分:1)

getAllObjectsUrl不包含url,因为你使用冒号(:)而不是等号(=)

冒号表示变量的类型,而等号初始化它。

更改此

private getAllObjectsUrl : 'http://99.240.124.235:7060/REST/rest/companyService/getAllCompanies.json/';

这个

private getAllObjectsUrl = 'http://99.240.124.235:7060/REST/rest/companyService/getAllCompanies.json/';