javascript - 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);
});
}
}
解决方案
推荐阅读
- reactjs - 如何将数据传递给父组件 React Native
- android - 如何在高度约束文本小部件中获取字符串的最后一个合适的单词?
- vue.js - 在 Vue 模板中存储对象
- android - ADB 无法在 Android 11 上启动 IMAGE_CAPTURE 意图活动
- datetime - x 轴上的日期 - OCTAVE
- javascript - FullCalendar 5 - eventDrop 第一次无法编辑事件道具?
- python - Django 石墨烯,按对象过滤
- powerbi - DAX 创建带有附加字段的日历表
- flutter - SlidingUpPanel 中的 ListView 滚动
- python - 使用参数作为变量的一部分