내 AngularJS HTTP 서비스가 항상 상태 -1의 오류를 반환하는지 궁금합니다.AngularJS의 HTTP 서비스는 항상 오류를 반환합니다.
PHP 코드가 있으며 localhost/ajax.php로 실행하십시오. 이 파일은 데이터베이스에서 데이터를 검색 할 수 있습니다. 그래서 PHP는 잘 작동합니다. 검색된 데이터는 다음과 같습니다 :
[{"id":"1","Name":"Mark","Gender":"Male","City":"London"},
{"id":"2","Name":"John","Gender":"Male","City":"Chenni"},
{"id":"3","Name":"Hint","Gender":"Male","City":"Singapore"},
{"id":"4","Name":"Sara","Gender":"Female","City":"Sydney"},
{"id":"5","Name":"Tom","Gender":"Male","City":"New York"},
{"id":"6","Name":"Pam","Gender":"Male","City":"Los Angeles"},
{"id":"7","Name":"Catherine","Gender":"Female","City":"Chicago"},
{"id":"8","Name":"Mary","Gender":"Femal","City":"Houston"},
{"id":"9","Name":"Mike","Gender":"Male","City":"Phoenix"},
{"id":"10","Name":"Rosie","Gender":"Female","City":"Manchestor"},
{"id":"11","Name":"Lim","Gender":"Male","City":"Singapore"},
{"id":"12","Name":"Tony","Gender":"Male","City":"Hong Kong"},
{"id":"13","Name":"Royce","Gender":"Male","City":"London"},
{"id":"14","Name":"Hitler","Gender":"Male","City":"Germany"},
{"id":"15","Name":"Tommy","Gender":"Male","City":"New Jersy"}]
이 PHP 파일은 내 AngularJS HTTP 서비스에서 호출되었지만 해당 호출은 항상 상태 -1의 오류를 반환합니다.
나는 모든 자료를 보았지만 아무런 단서도 없었다. 내 데이터베이스는 Sql을 사용하여 localhost에 설치됩니다.
내 검색어가 오류 일 수 있습니다. 나는 그것들이 에러 상태 -1로 http 서비스를 반환한다고 생각한다.
Ajax.php
<?php
require 'connect.php';
$connect = connect();
// Get the data
$students = array();
$sql = "SELECT id, Name, Gender, City FROM tblStudents";
if($result = mysqli_query($connect,$sql))
{
$count = mysqli_num_rows($result);
$cr = 0;
while($row = mysqli_fetch_assoc($result))
{
$students[$cr]['id'] = $row['id'];
$students[$cr]['Name'] = $row['Name'];
$students[$cr]['Gender'] = $row['Gender'];
$students[$cr]['City'] = $row['City'];
$cr++;
}
}
$json = json_encode($students);
echo $json;
exit;
?>
connect.php
<?php
// db credentials
define('DB_HOST', 'localhost');
define('DB_USER','root');
define('DB_PASS','nyan');
define('DB_NAME','Students');
// Connect with the database.
function connect()
{
$connect = mysqli_connect(DB_HOST ,DB_USER ,DB_PASS ,DB_NAME);
if (mysqli_connect_errno($connect))
{
die("Failed to connect:" . mysqli_connect_error());
}
mysqli_set_charset($connect, "utf8");
return $connect;
}
?>
Script.js
var app = angular.module("Demo", ["ngRoute"])
.config(function($routeProvider){
$routeProvider
.when("/home", {
templateUrl:"Templates/home.html",
controller:"homeController"
})
.when("/courses", {
templateUrl:"Templates/courses.html",
controller:"coursesController"
})
.when("/students", {
templateUrl:"Templates/students.html",
controller:"studentsController"
})
})
.controller("homeController", function($scope){
$scope.message = "Home Page";
})
.controller("coursesController", function($scope){
$scope.courses = ["C#", "VB.NET", "SQL Server", "ASP.NET"];
})
.controller("studentsController", function ($scope, $http) {
$scope.students;
$http({
method: 'GET',
url: 'api/ajax.php'
}).then(function (response) {
$scope.students = response.data;
}, function (response) {
console.log(response.data,response.status);
});
});
index.html을
다음과 같이 있습니다내 코드입니다
<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html ng-app="Demo">
<head>
<title>TODO supply a title</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<script src="Scripts/angular.min.js" type="text/javascript"></script>
<script src="Scripts/angular-route.min.js" type="text/javascript"></script>
<script src="Scripts/Script.js" type="text/javascript"></script>
<link href="Styles.css" rel="stylesheet" type="text/css"/>
</head>
<body >
<table style="font-family: Arial">
<tr>
<td colspan="2" class="header">
<h1>
WebSite Header
</h1>
</td>
</tr>
<tr ng-controller="studentsController">
<td class="leftMenu">
<a href="#/home">Home</a>
<a href="#/courses">Courses</a>
<a href="#/students">Students</a>
</td>
<td class="mainContent">
<ng-view></ng-view>
</td>
</tr>
<tr>
<td colspan="2" class="footer">
<b>Website Footer</b>
</td>
</tr>
</table>
</body>
</html>
header ('Content-Type : application/json');을 추가하십시오. json 결과를 Ajax.php에 에코하기 전에 – 11mb
@ 11MB 무엇을합니까? 나는 어떤 차이도 보이지 않는다. – batuman
json 형식으로 결과를 기대하는 각도를 알려줍니다. (http://stackoverflow.com/questions/4064444/returning-json-from-a-php-script) "내 쿼리는 HTTP 서비스가 오류와 함께 반환되는 오류 소스 일 수 있습니다." ? ajax.php에서 데이터베이스를 쿼리하지 않고 json 문자열을 echo 할 때 Ajax 호출이 작동합니까? – 11mb