返回jsON数据需设置Content-Type头并使用json_encode。应包含状态码、消息和数据体,如:header(‘Content-Type: application/json; charset=utf-8’); $data = [‘status’ => 1, ‘msg’ => ‘操作成功’, ‘data’ => [‘name’ => ‘张三’]]; echo json_encode($data, JSON_UNESCAPED_UNICODE); exit;

ajax 请求通常要求后端返回结构化数据,php 在处理这类请求时,需正确设置响应头并输出符合前端预期的数据格式。最常见的是返回 JSON 格式数据,便于 javaScript 解析和使用。
设置正确的响应头
在返回 AJAX 数据前,需要告知浏览器当前返回的是 JSON 数据,而不是 html 或其他类型。通过设置 Content-Type 为 application/json 可确保前端正确解析。
示例:
header('Content-Type: application/json; charset=utf-8');
使用 json_encode() 返回数据
PHP 提供了 json_encode() 函数,用于将数组或对象转换为 JSON 字符串。这是返回 AJAX 数据的核心方法。
立即学习“PHP免费学习笔记(深入)”;
常见返回结构建议包含状态码、消息和数据体,方便前端判断结果。
$data = [ 'status' => 1, 'msg' => '操作成功', 'data' => ['name' => '张三', 'age' => 25] ]; echo json_encode($data, JSON_UNESCAPED_UNICODE); exit;
注意:添加 JSON_UNESCAPED_UNICODE 参数可防止中文被转义,保持可读性。
处理不同类型的响应
根据业务逻辑返回不同状态,例如成功、失败、参数错误等。
// 成功 echo json_encode(['status' => 1, 'msg' => '加载成功', 'data' => $result]); // 失败 echo json_encode(['status' => 0, 'msg' => '数据不存在']); // 参数错误 echo json_encode(['status' => -1, 'msg' => '缺少必要参数']);
避免输出额外内容
确保在返回 JSON 前没有输出任何字符(如空格、bom 头、echo 输出),否则会导致 JSON 解析失败。建议关闭调试输出,在关键位置使用 exit; 终止后续执行。
如果使用框架(如 laravel、thinkphp),可直接使用内置的 return response()->json($data) 方法,更安全便捷。
基本上就这些,核心是:设对头、用 json_encode、结构清晰、不乱输出。按这个模式写,AJAX 通信基本不会出问题。


