【问题标题】:Get Data from PHP in angular unhandled error在角度未处理的错误中从 PHP 获取数据
【发布时间】:2015-12-05 08:18:15
【问题描述】:

我收到一个对我没有任何意义的错误。我对 Angular 有点陌生,所以这可能是一个非常愚蠢的错误,但我无法弄清楚。

它说有一个语法错误:

SyntaxError: Unexpected token /
at Object.parse (native)
at fromJson (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.js:1252:14)
at defaultHttpResponseTransform (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.js:9414:16)
at https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.js:9505:12
at forEach (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.js:336:20)
at transformData (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.js:9504:3)
at transformResponse (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.js:10276:23)
at processQueue (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.js:14745:28)
at https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.js:14761:27
at Scope.$eval (https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.4.7/angular.js:15989:28)

我调用控制器的 html 代码:

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

我的 Angular 控制器:

module.controller('dbTestCtrl', function($scope, $http) {
   $http.get(PHP_API + "datahandler/dbTest.php")
   .then(function (response){
      $scope.names = response.data.records;});
});

据我所知,我的 php 文件正在运行:

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

  $conn = new mysqli("localhost", "root", "", "cmweb");

  $result = $conn->query("SELECT loginName, userID, createDate FROM users");

  $outp = "";
  while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "") {
        $outp .= ",";
    }
    $outp .= '{"Name":"'  . $rs["loginName"] . '",';
    $outp .= '"ID":"'   . $rs["userID"]        . '",';
    $outp .= '"Created":"'. $rs["createDate"]     . '"}'; 
  }
  $outp ='{"records":['.$outp.']}';
  $conn->close();

  echo($outp);
?>

正如我所说,我对 Angular 真的很陌生,我只是自己无法弄清楚,所以如果有人能帮助我,那就太好了:)

谢谢

【问题讨论】:

    标签: php mysql angularjs html


    【解决方案1】:

    可能是你的 json 格式不对。尝试使用 json_encode 来避免自己编写所有这些引号和括号。

    $outp = array();
    
    while ($rs = $result->fetch_array(MYSQLI_ASSOC)) {
        $outp[] = array('Name' => $rs["loginName"], 
                        'ID' => $rs["userID"], 
                        'Created' => $rs["createDate"]);
    }
    
    echo json_encode(array('records' => $outp));
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-30
      • 1970-01-01
      • 2011-04-30
      • 2018-01-29
      • 1970-01-01
      • 2012-04-13
      • 1970-01-01
      相关资源
      最近更新 更多