Угловой http get запрос не работает должным образом

#javascript #html #angular

#javascript #HTML #угловой

Вопрос:

Это файл courses.services.ts. Я думаю, что проблема заключается в методе saveCourse(), но я не уверен.

 import { Component, OnInit } from '@angular/core';
import { CoursesService } from '../shared/services/courses.service';


@Component({
  selector: 'app-courses',
  templateUrl: './courses.component.html',
  styleUrls: ['./courses.component.scss']
})


export class CoursesComponent implements OnInit {
  
  constructor(private coursesService: CoursesService) { }

  ngOnInit(): void {

    this.resetCurrentCourse();
    this.coursesService.all().subscribe(courses=> this.courses=courses);
    
  }
  currentCourse=null;
  courses=null;

  resetCurrentCourse(){
    const emptyCourse={
      id: null,
      title: '',
      description: '',
      percentComplete: 0,
      favourite: false
    }

    this.currentCourse= emptyCourse;
    
  }

  courseselecter(course){
      console.log("event fired" course.title);
      this.currentCourse=course;

  }

  loadCourses(){
    this.coursesService.all().subscribe(courses => this.courses = courses);
  }

  cancel(){
    this.resetCurrentCourse();
  }

  saveCourse(course){
    if(course.id){
      this.coursesService.update(course);
    }else{
      this.coursesService.create(course).subscribe(result=> this.loadCourses());
    }
  }

  deleteCourse(course){
    console.log("delete action fired");
    // this.currentCourse
  }

}  

Это файл courses.component.ts. веб-страница отображается правильно, но в запросе GET указано 304, а хост — localhost: 4200, который должен быть localhost: 3000. я пробовал так много раз и в итоге получал тот же результат. кто-нибудь может помочь?

 import { HttpClient} from '@angular/common/http';
import { Injectable } from '@angular/core';



const BASE_URL='http://localhost:3000/';

@Injectable({
  providedIn: 'root'
})
export class CoursesService {

  private model='courses';

  constructor(private http: HttpClient) { }

  courses=[
    {
      id:1,
      title:'Angular 9 Fundamentals',
      description: 'Learn the Fundamentals of Angualar',
      percentComplete:26,
      favourite: true
    },

    {
      id:2,
      title:'javascript really hard parts',
      description: 'learn the javascript',
      percentComplete: 50,
      favourite: true
    }
  ];
  
  
  all(){
    return this.http.get(`${BASE_URL}${this.model}`);
  }

  create(course){
    return this.http.post(this.geturl(),course);
  }

  update(course){
    console.log("Update course:",course);
  }

  private geturl(){
    return `${BASE_URL}${this.model}`;
  }

}  

Комментарии:

1. Ваш сервис выглядит нормально. Я действительно не понимаю, в чем ваша проблема. Ваша консоль не должна показывать «localhost: 4200» при вызове вашей службы. Если это так, это проблема с кешем, поэтому нажмите CTRL F5.

2. Попробуйте использовать прокси в proxy.conf.json

3. это должна быть конечная точка REST. но, похоже, этот код не отправляет никаких данных на серверную часть. Если это произойдет, он должен отображаться на вкладке сеть, верно?????