Не удается получить данные JSON с сервера 000webhost с AngularJS $ http.get

0

Я пытаюсь получить данные с моего сервера в файле HTML.

Я пробовал код школы w3, но когда я пытаюсь использовать ссылку на сервер, он ничего не печатает.

Вот угловой код:

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script>     
<div ng-app="myApp" ng-controller="customersCtrl">

  <table>
    <tr ng-repeat="x in names">
    <td>{{ x.Name }}</td>
    <td>{{ x.Country }}</td>
    </tr>
  </table>

</div>

<script>
  var app = angular.module('myApp', []);
  app.controller('customersCtrl', function($scope, $http) {
    $http
      .get("http://rabikhan.net23.net/Bitm_Student_Project/src/test.php")
      .then(function (response) {$scope.names = response.data.records;});
  });
</script>

и php-код

<?php
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

$conn = new mysqli("mysql4.000webhost.com", "a1724083_rhk", "r7224191", "a1724083_tour2");

$result = $conn->query("SELECT CompanyName, City, Country FROM customers");

$outp = "";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
  if ($outp != "") {$outp .= ",";}
  $outp .= '{"Name":"'  . $rs["CompanyName"] . '",';
  $outp .= '"City":"'   . $rs["City"]        . '",';
  $outp .= '"Country":"'. $rs["Country"]     . '"}'; 
}
$outp ='{"records":['.$outp.']}';
$conn->close();

echo($outp);
?>

Вопрос

Как я могу получить echo($outp); распечатать желаемую информацию?

  • 0
    Вы пытались использовать console.log чтобы увидеть, что сервер возвращает, если что-нибудь? Как выглядит ответ?
  • 0
    никогда не создавайте свой собственный JSON вручную, это очень подвержено ошибкам. Вместо этого используйте json_encode() . Добавьте обработчик ошибок в $http для более подробной информации

1 ответ

0

измените свой php на:

<?php
    header("Access-Control-Allow-Origin: *");
    header("Content-Type: application/json; charset=UTF-8");

    $conn = new mysqli("mysql4.000webhost.com", "a1724083_rhk", "r7224191", "a1724083_tour2");

    $result = $conn->query("SELECT CompanyName AS Name, City, Country FROM customers");

    // create an empty output array
    $output = array();
    while ($rs = $result->fetch_array(MYSQLI_ASSOC)) {
        // add record to output array
        $output.push($rs); 
    }

    $conn->close();

    // return output array as proper json
    echo json_encode($output);
?>

Я также заметил, что у вас есть код аналитики в вашем php-ответе, указывающий на http://stats.hosting24.com/count.php, не добавляйте его в свои ответы JSON

Ещё вопросы

Сообщество Overcoder
Наверх
Меню