I'm getting http parsing error on my Angular get method when reading json from php backend api. I've used json_encode for generating json in php and I've set {responseType: 'json'} on get method parameter in Angular, but still no return. How can I correctly parse it in Angular?
list.php
<?php
include('connection.php');
$sql = "SELECT * FROM courses";
$data = $conn->query($sql);
$courses = [];
$index = 0;
foreach($data as $row) {
  $courses[$index]['courseId'] = $row['courseId'];
  $courses[$index]['courseName'] = $row['courseName'];
  $courses[$index]['coursePrice'] = $row['coursePrice'];
  $index++;
}
json_encode(['data'=>$courses]);
var_dump($courses);
?>
PHP return
array(2) {
  [0]=>
  array(3) {
    ["courseId"]=>
    int(1)
    ["courseName"]=>
    string(7) "Angular"
    ["coursePrice"]=>
    string(6) "850.00"
  }
  [1]=>
  array(3) {
    ["courseId"]=>
    int(2)
    ["courseName"]=>
    string(10) "Javascript"
    ["coursePrice"]=>
    string(6) "550.00"
  }
}
course.component.ts
import { HttpClient } from '@angular/common/http';
import { Component, OnInit } from '@angular/core';
import { Course } from './course';
import { CourseService } from './course.service';
@Component({
  selector: 'app-course',
  templateUrl: './course.component.html',
  styleUrls: ['./course.component.css']
})
export class CourseComponent implements OnInit {
  courses: Course[] = [];
  course = new Course();
  constructor(
    private courseService: CourseService
    ) { }
  ngOnInit(): void {
    this.list();
  }
  list() {
    this.courseService.list().subscribe((res: Course[]) => {
      this.courses = res;
    });
  }
}
course.service.ts
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { map } from 'rxjs/operators';
import { Observable } from 'rxjs';
import { Course } from './course';
@Injectable({
  providedIn: 'root'
})
export class CourseService {
  url = "http://localhost:9000/backend/";
  courses: Course[] = [];
  course: Course = new Course();
  constructor(
    private http: HttpClient
  ) { }
  list(): Observable<Course[]> {
    return this.http.get(`${this.url}list.php`, {responseType: 'json'}).pipe(map((res: any) => {
        this.courses = res['data'];
        return this.courses;
      })
    );
  }
}
Error in Angular
{
    "headers": {
        "normalizedNames": {},
        "lazyUpdate": null
    },
    "status": 200,
    "statusText": "OK",
    "url": "http://localhost:9000/backend/list.php",
    "ok": false,
    "name": "HttpErrorResponse",
    "message": "Http failure during parsing for http://localhost:9000/backend/list.php",
    "error": {
        "error": {},
        "text": "array(2) {\n  [0]=>\n  array(3) {\n    [\"courseId\"]=>\n    int(1)\n    [\"courseName\"]=>\n    string(7) \"Angular\"\n    [\"coursePrice\"]=>\n    string(6) \"850.00\"\n  }\n  [1]=>\n  array(3) {\n    [\"courseId\"]=>\n    int(2)\n    [\"courseName\"]=>\n    string(10) \"Javascript\"\n    [\"coursePrice\"]=>\n    string(6) \"550.00\"\n  }\n}\n"
    }
}
