Here Я построил скрипт для создания следующей JSON вывод:PHP JSON закодированный выход, не совместим с Javascript Ajax
[{"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 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;
Я не могу понять, что случилось ...
Вы проверили запрос на вкладке «Сеть» в консоли браузера? –
читайте сказочное руководство для [json_encode] (http://php.net/manual/en/function.json-encode.php) ... ваш синтаксис неверен. Удалите параметр «истина». – YvesLeBorg
, если вы запустили url 'myJSONscript.php' непосредственно в браузере, вы получите правильный json? – dewd