AngularJS跨域从php服务获取数据
我目前有一个检查服务器信息的脚本。他们提供了一个名为index.php的文件——当我在URL中加载这个文件时,会生成一个.xml文件的内容 我的问题是,如何从控制器中的这个php文件/URL获取数据 我在脚本中使用了php url,但它不起作用 Controller.jsAngularJS跨域从php服务获取数据,php,angularjs,Php,Angularjs,我目前有一个检查服务器信息的脚本。他们提供了一个名为index.php的文件——当我在URL中加载这个文件时,会生成一个.xml文件的内容 我的问题是,如何从控制器中的这个php文件/URL获取数据 我在脚本中使用了php url,但它不起作用 Controller.js var Factory = angular.module('Factory ', ['ngRoute']); Factory .controller('Controller', function ($scope, $http,
var Factory = angular.module('Factory ', ['ngRoute']);
Factory .controller('Controller', function ($scope, $http, $route)
{
$http.get('http://example.com/index.php')
.success(function (data) {
$scope.data = data;
})
.error(function (data, status) {
$scope.data = data || "FALSE";
alert("error");
});
});
<?php
$mysqli = new mysqli('example.com','abc_5','gf#$6','example_db');
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
if (!$mysqli->query("DROP PROCEDURE IF EXISTS SP_getName") ||
!$mysqli->query('CREATE PROCEDURE SP_getName() BEGIN SELECT Name from user_tbl END;')) {
echo "Stored procedure creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
$result = $mysqli->query("CALL SP_getName()");
while($row = mysqli_fetch_assoc($result)) {
$output[] = array_map('utf8_encode', $row);
}
print(json_encode($output));
?>
index.php
var Factory = angular.module('Factory ', ['ngRoute']);
Factory .controller('Controller', function ($scope, $http, $route)
{
$http.get('http://example.com/index.php')
.success(function (data) {
$scope.data = data;
})
.error(function (data, status) {
$scope.data = data || "FALSE";
alert("error");
});
});
<?php
$mysqli = new mysqli('example.com','abc_5','gf#$6','example_db');
if ($mysqli->connect_errno) {
echo "Failed to connect to MySQL: (" . $mysqli->connect_errno . ") " . $mysqli->connect_error;
}
if (!$mysqli->query("DROP PROCEDURE IF EXISTS SP_getName") ||
!$mysqli->query('CREATE PROCEDURE SP_getName() BEGIN SELECT Name from user_tbl END;')) {
echo "Stored procedure creation failed: (" . $mysqli->errno . ") " . $mysqli->error;
}
$result = $mysqli->query("CALL SP_getName()");
while($row = mysqli_fetch_assoc($result)) {
$output[] = array_map('utf8_encode', $row);
}
print(json_encode($output));
?>
我试图从服务中调用数据,但什么也得不到。我知道查询是异步的,但我很难理解在返回数据后如何填充$scope变量 您可能需要在PHP中向标题中添加以下内容:
<?php header("Access-Control-Allow-Origin: *"); ?>
更多信息可以在这里找到:ajax调用是否产生错误消息?还是php脚本的问题?如果你的php脚本只是回显一个字符串,你会遇到同样的问题吗?你能谈谈你的CORS配置吗?如果你必须跨域,你不在你的服务器中使用反向代理吗?你是否在与index.php相同的服务器中托管了你的角度页面?