我试图从一个吐出JSON的PHP脚本中获取回声。
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
我的角度代码中包含的内容如下: 'use strict';
app.factory('HttpRequestService', function($http) {
var HttpRequestService = {
async: function() {
var promise = $http.get('/test.php').then(function (response) {
return response.data;
});
return promise;
},
load: function() {
console.log('helloo');
}
};
return HttpRequestService;
});
然后在我的服务中我有:
HttpRequestService.async().then(function(data) {
console.log('data is : ' + data);
});
但是这篇文章吐出了整个php脚本而不只是echo数据:
console :
data is : <?php
$arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5);
echo json_encode($arr);
?>
为什么会发生这种情况?谢谢!
答案 0 :(得分:3)
检查在浏览器中打开test.php
时返回的响应。
你的php没有被编译。也许你没有在你的网络服务器上运行php模块。
答案 1 :(得分:1)
这是一个工厂,为了命名会议,你可能想要重命名它HttpRequestFactory
app.factory('HttpRequestService', function($http, $q) {
var HttpRequestService = {
async: function() {
var deferred = $q.defer();
$http.get('/test.php')
.success(function (data, status, headers, config) {
deferred.resolve(data);
})
.error(function(data, status, headers, config){
deferred.reject("An error occured");
});
return deferred.promise;
}
};
return HttpRequestService;
});