我正在使用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,而不是前端吗?)。
答案 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/';