You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular调用PHP后端API时JSON解析失败的解决方法咨询

问题根源

你的PHP后端没有返回合法的JSON数据,反而输出了var_dump的调试文本,这导致Angular尝试解析非JSON内容时触发HTTP解析错误。从报错信息的error.text字段可以看到,实际返回的是PHP数组的打印内容,而非JSON字符串。

解决方案

1. 修复PHP后端代码

修改list.php,移除var_dump,并确保输出JSON格式数据,同时设置正确的响应头:

<?php
include('connection.php');

// 设置响应头,明确告知客户端返回JSON格式
header('Content-Type: application/json');

$sql = "SELECT * FROM courses";
$data = $conn->query($sql);

$courses = [];
// 简化数组构建逻辑
foreach($data as $row) {
  $courses[] = [
    'courseId' => $row['courseId'],
    'courseName' => $row['courseName'],
    'coursePrice' => $row['coursePrice']
  ];
}

// 输出JSON字符串(必须用echo,否则不会返回给前端)
echo json_encode(['data' => $courses]);
?>

2. 验证PHP返回结果

访问http://localhost:9000/backend/list.php,应该看到纯JSON格式的响应:

{"data":[{"courseId":1,"courseName":"Angular","coursePrice":"850.00"},{"courseId":2,"courseName":"Javascript","coursePrice":"550.00"}]}

3. Angular代码无需修改

你的Angular服务(course.service.ts)中已经正确设置了responseType: 'json',并且通过map操作提取res['data'],只要PHP返回合法JSON,就能正常解析数据并渲染。

内容的提问来源于stack exchange,提问作者Kelson Batista

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 23:20:44