Angular маршруты не доступны через POSTMAN - PullRequest
1 голос
/ 27 апреля 2020

Я использую angular 9 для проекта, который отлично работает в браузере. Я пытаюсь получить доступ к маршруту через POSTMAN, но получаю ошибку. Как сделать маршрут доступным через CLI?

Вот мои маршруты

const routes: Routes = [
  {path:'', component: JoinClassComponent},
  {path:'home', component: HomeComponent},
  {path:'login', component: LoginComponent},
  {path:'class-ended', component: ClassEndedComponent},
  // otherwise redirect to home
  {path:'**', component: JoinClassComponent},
];

Вот компонент

import { Component, OnInit } from '@angular/core';
import { ActivatedRoute } from '@angular/router';

@Component({
  selector: 'app-class-ended',
  templateUrl: './class-ended.component.html',
  styleUrls: ['./class-ended.component.css']
})
export class ClassEndedComponent implements OnInit {

  constructor(private route: ActivatedRoute) { }

  ngOnInit(): void {
            const classID: string = this.route.snapshot.queryParamMap.get('meetingID');
           //rest of the logic
         }
}

URL не работает в POSTMAN

enter image description here

URL работает в браузере

URL working in browser

/ маршрут работает в POSTMAN

enter image description here

Ответы [ 2 ]

2 голосов
/ 27 апреля 2020

Это не может работать, потому что Postman отправляет запрос URL localhost:4200/class-ended на ваш сервер - и ваш сервер ничего не знает об этом URL.
Для сравнения: когда вы вводите тот же URL в браузере, ваш angular приложение обработает запрос.

Angular сборок одностраничных приложений , поэтому на вашем сервере у вас будет только один index.html файл в каталоге root: когда вы посещаете localhost:4200, ваш веб-сервер возвращает index.html в ваш браузер (и этот html файл содержит теги скрипта для загрузки вашего javascript исходного кода).

Когда вы вводите localhost:4200/class-ended в вашем браузере angular получит уведомление об изменении URL-адреса и проверит конфигурацию маршрута, если маршрут /class-ended существует. Если это так, angular -router будет "переходить" к этому маршруту: то есть будет отображать этот компонент в маршрутизаторе-выходе.
Но этот не отправляет запрос к серверу (и как упоминалось выше, это не будет работать, потому что class-ended не существует на вашем сервере.

1 голос
/ 27 апреля 2020

Postman - это инструмент разработки API (интерфейса прикладного программирования), который помогает создавать, тестировать и модифицировать API. Имеет возможность делать различные типы HTTP-запросов (GET, POST, PUT, PATCH), сохраняя среды для последующего использования. Преобразование API в код для различных языков.

Так что используйте его для проверки своего API, а не для вызова ваших HTML страниц.

Надеюсь, это полезно для вас. :)

...