我正在尝试以角度执行承诺,这是我的服务代码:
var carsService = function ($http, $q, $log, $rootScope) {
var service = this;
service.getInfo = function () {
var defer = $q.defer();
$http.get($rootScope.endPoint + 'cars.php?load=t')
.success(function (data) {
defer.resolve(data);
})
.error(function (data, status, headers, config) {
defer.reject({
n: 1000,
msj: 'some error msg'
});
$log.log(data + ' ' + status + ' ' + headers + ' ' + config);
});
return defer.promise;
};
};
这就是我从我的控制器打来的电话:
CarsService.getInfo()
.then(function (data) {
console.log(data);
}, function (err) {
swal("ERROR", "some error msg.", "error");
}
);
这是我的 cars.php 文件:
<?php
var $r = array('a'=>1,'b'=>2);
print json_encode($r);
?>
我期待的是控制台打印一个数组,但我得到的是打印的PHP代码。
PHP正在运行:
我也尝试过POSTMAN:
任何想法的人????谢谢...
答案 0 :(得分:0)
您的$ rootScope.endPoint变量可能不正确。
PostMan中的GET调用是对localhost:63342(Webstorm LiveEdit?)进行的,而XAMPP是在localhost:8090上运行的。必须在Apache服务器上执行cars.php文件,并且必须将GET调用定向到localhost:8090 / path_to_cars.php。