2016-04-09 2 views
1

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; 

Я не могу понять, что случилось ...

+0

Вы проверили запрос на вкладке «Сеть» в консоли браузера? –

+0

читайте сказочное руководство для [json_encode] (http://php.net/manual/en/function.json-encode.php) ... ваш синтаксис неверен. Удалите параметр «истина». – YvesLeBorg

+0

, если вы запустили url 'myJSONscript.php' непосредственно в браузере, вы получите правильный json? – dewd

ответ

2

Fixed! contentType: "application/json" не может использоваться вместе с dataType: "json", удаление contentType решил проблему.

Смежные вопросы