我想从PHP脚本返回JSON。

我只是重复结果吗?我必须设置内容类型头吗?


当前回答

一个返回带有HTTP状态代码的JSON响应的简单函数。

function json_response($data=null, $httpStatus=200)
{
    header_remove();

    header("Content-Type: application/json");

    http_response_code($httpStatus);

    echo json_encode($data);

    exit();
}

其他回答

用header(' content -type: application/json')设置内容类型;然后对数据进行回显。

是的,你需要使用echo来显示输出。Mimetype: application / json

如上所述:

header('Content-Type: application/json');

会完成这项工作。但请记住:

即使没有使用这个报头,Ajax读取json也没有问题,除非您的json包含一些HTML标记。在这种情况下,您需要将头文件设置为application/json。 确保您的文件不是用UTF8-BOM编码的。这种格式在文件顶部添加了一个字符,因此header()调用将失败。

尝试json_encode对数据进行编码,并设置带有header的content-type (' content-type: application/json');

如果你查询一个数据库,需要JSON格式的结果集,可以这样做:

<?php

$db = mysqli_connect("localhost","root","","mylogs");
//MSG
$query = "SELECT * FROM logs LIMIT 20";
$result = mysqli_query($db, $query);
//Add all records to an array
$rows = array();
while($row = $result->fetch_array()){
    $rows[] = $row;
}
//Return result to jTable
$qryResult = array();
$qryResult['logs'] = $rows;
echo json_encode($qryResult);

mysqli_close($db);

?>

有关使用jQuery解析结果的帮助,请参阅本教程。