对角度应用程序的Ajax调用在现有路由上返回错误404

时间:2019-02-03 03:09:43

标签: angular http request localhost

我正在研究国际化的角度库,我想制作一个角度组件,该组件返回给定语言的所有翻译。为了测试,我创建了以下TranslateComponent

import {Component} from '@angular/core';

@Component({
    selector: 'trans-translate',
    templateUrl: './translate.component.html'
})
export class TranslateComponent {
    // region Public fields
    public data: string[] = ['This', 'is', 'Sparta'];
    // endregion
}

带有显示数据的简单html模板:

{{ data | json }}

访问此组件的URL为http://localhost:4200/translate,如果我从浏览器访问它,一切正常(我得到以下结果:显示[[This],“ is”,“ Sparta”]。 问题是我想用HttpClient调用它,并且在那里不起作用。我只是做了一个简单的测试:

import {Component, OnInit} from '@angular/core';
import {HttpClient} from '@angular/common/http';

@Component({
    selector: 'app-page-test',
    templateUrl: './test-page.component.html'
})
export class TestPageComponent implements OnInit {
    // region Constructor
    public constructor(
        private readonly _HTTP: HttpClient
    ) {}
    // endregion

    // region Public methods
    public ngOnInit(): void {
        this._HTTP.get('/translate').subscribe((result: any): void => {
            console.log(result);
        });
    }
    // endregion
}

但是我得到的只是身体错误404:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Error</title>
</head>
<body>
<pre>Cannot GET /translate</pre>
</body>
</html>

我不知道我想念什么?是我必须添加到请求中的标头吗?

出于记录,我实际上使用的是angular 7,我使用命令“ npm run start”启动服务器,该命令基本上只执行tu“ ng serve”命令。

1 个答案:

答案 0 :(得分:0)

翻译和测试是两个组成部分。 localhost:4200 / translate实际上是一个组件,并显示数据。

在测试页中,您尝试使用HttpClient调用服务。不会调用转换组件并返回数据。

希望这就是您提到的意思

  

t页面localhost:4200 / test向   本地主机:4200 / translate,所以我为什么会出问题