【问题标题】:Angular 2, localhost/null error when trying to use http.get?Angular 2,尝试使用 http.get 时出现 localhost/null 错误?
【发布时间】:2016-11-08 22:20:20
【问题描述】:

我正在使用 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 url 导致了问题,我觉得这很奇怪,因为我的其他 API 调用工作并且它们遵循完全相同的格式(除了不同的 url)。

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

我完全被卡住了,如果有任何帮助,我们将不胜感激(这个错误可能是因为 Web API,而不是前端?)。

【问题讨论】:

    标签: javascript angularjs node.js angular


    【解决方案1】:

    getAllObjectsUrl 不包含网址,因为您使用的是冒号(:) 而不是等号(=)

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

    改变这个

    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/';
    

    【讨论】:

    • 这很尴尬...我不知道为什么我在这个网址中使用了冒号,或者我怎么没看到...谢谢...
    猜你喜欢
    • 1970-01-01
    • 2016-04-19
    • 1970-01-01
    • 2013-03-02
    • 2014-08-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    相关资源
    最近更新 更多