Here 我构建了一个脚本来生成以下 JSON 输出:
[{"lat":41.081348,"lon":14.73292,"type":"F"},...,{"lat":41.09837,"lon":14.83176,"type":"F"}]
但是,当我尝试使用以下 Javascript 代码获取数据时:
$.ajax({
url: 'myJSONscript.php',
dataType: "json",
success: function (data, status, xhr) {
console.log("data:"+data);
console.log("status:"+status);
console.log("xhr:"+xhr);
}, //End Success
error: function () {
alert("ERROR");
}
});
我得到的只是一个空数据变量
(换句话说,控制台返回
数据:空,
状态:成功,
xhr:[object 对象]).
JSON 输出有效(使用 JSONlint 测试)并使用以下代码构建:
$arr=array();
while ($row=mysqli_fetch_array($r)) {
$element=array('lat'=>floatval($row['LATITUDE']),'lon'=>floatval($row['LONGITUDE']),'type'=>$row['TYPE']);
array_push($arr, $element);
}
$data=json_encode($arr,true);
header("Content-Type: application/json", true);
echo $data;
我不知道哪里出了问题......
最佳答案
已修复! contentType: "application/json"
不能和dataType: "json"
一起使用,删除contentType 解决了这个问题。
关于javascript - PHP JSON 编码输出与 Javascript Ajax 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36519583/