首页 > 解决方案 > Angular 7 httpClient 从 Laravel API 获取响应是字符串

问题描述

我有一个带有 PHP Laravel API 后端的 Angular 7 项目,该后端从 get 请求返回 json。

返回响应::json($genres);

我在从组件调用的服务中使用 httpClient(见下文)。当我控制台记录数据时,它是一个字符串,而不是一个 json 对象。此外,我无法访问它拥有的任何属性,因为它只是一个长字符串。

在大多数在线示例中,人们使用 map 和 pipe,但现在都已弃用,显然 httpClient 只返回 JSON 作为默认值,但这似乎不是在这种情况下发生的情况。

有人可以给我一个解决方案吗?我需要以 JSON 格式访问响应中的数据。

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

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

  constructor(private http:HttpClient) { }

  getGenres(){
      return this.http.get('http://www.localhost:7888/api/genres', this.genre);
  }


}

import { Component, OnInit } from '@angular/core';
import { ApiService } from '../../services/api.service';

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

  constructor(private apiService: ApiService) { }

  ngOnInit() {
      // make http request to http://www.localhost:7888/api/genres
      this.apiService.getGenres().subscribe(data => {
          console.log(data);
      },
      error => {
          console.log(error);
      });
  }

}

标签: javascriptphpangular

解决方案


推荐阅读