我目前有一个检查服务器信息的脚本。他们提供了一个名为index.php的文件 - 当我在URL中加载此文件时,会生成.xml文件的内容。
我的问题是,如何在我的控制器中从这个php文件/ URL获取数据?
我在脚本中使用php url但它不起作用。
Controller.js
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");
});
});
index.php
<?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变量。
答案 0 :(得分:1)
可能你必须在PHP中的标题中添加以下内容:
<?php header("Access-Control-Allow-Origin: *"); ?>
可在此处找到更多信息:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS