Javascript AngularJS-$http.get返回JSON的HTML插入(php和mysql)

Javascript AngularJS-$http.get返回JSON的HTML插入(php和mysql),javascript,php,mysql,angularjs,json,Javascript,Php,Mysql,Angularjs,Json,我正在尝试使用php从mysql数据库中获取一些数据,并将其显示在angular中。我使用WAMP服务器在本地托管所有内容 然而,我得到的响应是HTML,而不是JSON 以下是我的代码片段: app.js var incomeTracker = angular.module('incomeTracker',[]); incomeTracker.controller('mainCtrl', ['$scope','$http', function($scope,$http) { console

我正在尝试使用php从mysql数据库中获取一些数据,并将其显示在angular中。我使用WAMP服务器在本地托管所有内容

然而,我得到的响应是HTML,而不是JSON

以下是我的代码片段:

app.js

var incomeTracker = angular.module('incomeTracker',[]);

incomeTracker.controller('mainCtrl', ['$scope','$http', function($scope,$http) {


console.log('salut');

 $scope.addToCard = function() {
    $scope.card = $scope.card - (-$scope.cardAdd);
  };

  $http.get("http://localhost/incomeTracker/php/preluare.php")
        .success(function (response) 
        {
            console.log(response);
        }); 

}]);
prelure.php

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

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

$result = $conn->query("SELECT cardMoney, cashMoney, voucherNumber, voucherValue FROM valori");

$outp = "";
while($rs = $result->fetch_array(MYSQLI_ASSOC)) {
    if ($outp != "") {$outp .= ",";}
    $outp .= '{"cardMoney":"'  . $rs["cardMoney"] . '",';
    $outp .= '"cashMoney":"'   . $rs["cashMoney"]        . '",';
    $outp .= '"voucherNumber":"'. $rs["voucherNumber"]     . '"}'; 
    $outp .= '"voucherValue":"'. $rs["voucherValue"]     . '"}'; 
}
$outp ='{"records":['.$outp.']}';
console.log('sunt aici');
$conn->close();

echo($outp);
?>

index.html

<!DOCTYPE html>
<html ng-app="incomeTracker">
<head>
    <title>Income Tracker</title>

    <script src="node_modules/angular/angular.js"></script>
    <script src="js/app.js"></script>
    <link rel="stylesheet" type="text/css" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.6.3/css/font-awesome.min.css">
    <link rel="stylesheet" type="text/css" href="css/style.css">
    <link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i,800,800i" rel="stylesheet">
</head>
<body ng-controller="mainCtrl as vm">

<table>
  <tr ng-repeat="x in valori">
    <td>{{ x.cardMoney }}</td>
    <td>{{ x.cashMoney }}</td>
    <td>{{ x.voucherNumber }}</td>
  </tr>
</table>

</body>
</html>

收入追踪器
{{x.cardMoney}
{{x.cashMoney}
{{x.voucherNumber}
我不知道为什么这不起作用。提前感谢您花时间阅读本文,并希望能帮助我解决这个问题:)

编辑

我得到了这个错误:“SyntaxError:Unexpected token<在JSON中的位置0” 当我检查网络选项卡时,这是我得到的响应,而不是JSON

<br />
<font size='1'><table class='xdebug-error xe-warning' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: mysqli::mysqli(): (HY000/1049): Unknown database 'valori' in C:\wamp64\www\IncomeTracker\php\preluare.php on line <i>5</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0013</td><td bgcolor='#eeeeec' align='right'>240760</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp64\www\IncomeTracker\php\preluare.php' bgcolor='#eeeeec'>...\preluare.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0014</td><td bgcolor='#eeeeec' align='right'>242608</td><td bgcolor='#eeeeec'><a href='http://www.php.net/mysqli.mysqli' target='_new'>mysqli</a>
(  )</td><td title='C:\wamp64\www\IncomeTracker\php\preluare.php' bgcolor='#eeeeec'>...\preluare.php<b>:</b>5</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error xe-warning' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Warning: mysqli::query(): Couldn't fetch mysqli in C:\wamp64\www\IncomeTracker\php\preluare.php on line <i>7</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0013</td><td bgcolor='#eeeeec' align='right'>240760</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp64\www\IncomeTracker\php\preluare.php' bgcolor='#eeeeec'>...\preluare.php<b>:</b>0</td></tr>
<tr><td bgcolor='#eeeeec' align='center'>2</td><td bgcolor='#eeeeec' align='center'>0.0057</td><td bgcolor='#eeeeec' align='right'>243032</td><td bgcolor='#eeeeec'><a href='http://www.php.net/mysqli.query' target='_new'>query</a>
(  )</td><td title='C:\wamp64\www\IncomeTracker\php\preluare.php' bgcolor='#eeeeec'>...\preluare.php<b>:</b>7</td></tr>
</table></font>
<br />
<font size='1'><table class='xdebug-error xe-fatal-error' dir='ltr' border='1' cellspacing='0' cellpadding='1'>
<tr><th align='left' bgcolor='#f57900' colspan="5"><span style='background-color: #cc0000; color: #fce94f; font-size: x-large;'>( ! )</span> Fatal error: Call to a member function fetch_array() on null in C:\wamp64\www\IncomeTracker\php\preluare.php on line <i>10</i></th></tr>
<tr><th align='left' bgcolor='#e9b96e' colspan='5'>Call Stack</th></tr>
<tr><th align='center' bgcolor='#eeeeec'>#</th><th align='left' bgcolor='#eeeeec'>Time</th><th align='left' bgcolor='#eeeeec'>Memory</th><th align='left' bgcolor='#eeeeec'>Function</th><th align='left' bgcolor='#eeeeec'>Location</th></tr>
<tr><td bgcolor='#eeeeec' align='center'>1</td><td bgcolor='#eeeeec' align='center'>0.0013</td><td bgcolor='#eeeeec' align='right'>240760</td><td bgcolor='#eeeeec'>{main}(  )</td><td title='C:\wamp64\www\IncomeTracker\php\preluare.php' bgcolor='#eeeeec'>...\preluare.php<b>:</b>0</td></tr>
</table></font>

(!)警告:mysqli::mysqli():(HY000/1049):第5行C:\wamp64\www\IncomeTracker\php\preluare.php中的未知数据库“valori” 调用堆栈 #时间记忆功能定位 10.0013240760{main}()…\preluare.php:0 20.0014242608 ()…\prelure.php:5
(!)警告:mysqli::query():无法在第7行的C:\wamp64\www\IncomeTracker\php\preluare.php中获取mysqli 调用堆栈 #时间记忆功能定位 10.0013240760{main}()…\preluare.php:0 20.0057243032 ()…\prelure.php:7
(!)致命错误:在第10行的C:\wamp64\www\IncomeTracker\php\preluare.php中调用null上的成员函数fetch_array() 调用堆栈 #时间记忆功能定位 10.0013240760{main}()…\preluare.php:0
这可能是由内容类型标题中的额外分号引起的。更改以下行:

header("Content-Type: application/json;");
致:


显然,这是一条线索:


警告:mysqli::mysqli():(HY000/1049):C:\wamp64\www\IncomeTracker\php\preluare.php中的未知数据库“valori”

我更改了它,但遗憾的是它仍然是一样的。谢谢你的回答:)哇,不要那样构建json。有一种专门为此目的而设计的方法。它用什么html响应?@KevinB我用更长的答案回答,见下文:)
header("Content-Type: application/json");