1

我正在尝试从吐出 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);
?> 

任何想法为什么会发生这种情况?谢谢!

4

2 回答 2

3

test.php检查在浏览器中打开时返回的响应。

你的 php 没有被编译。也许您没有在您的网络服务器中运行 php 模块。

于 2013-07-30T18:57:57.453 回答
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;
});
于 2013-07-30T17:49:02.253 回答