2013-07-30 35 views
1

我想從一個PHP腳本,吐出JSON的回聲。AngularJs http獲取到PHP腳本返回的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腳本,而不僅僅是回聲數據:

console : 
data is : <?php 
    $arr = array('a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5); 
    echo json_encode($arr); 
?> 

任何想法,爲什麼發生這種情況?謝謝!

+0

如果你導航到瀏覽器中的PHP頁面會發生什麼? – kingdamian42

+1

當你用瀏覽器點擊test.php頁面時會發生什麼?什麼是回來的迴應。它看起來像你的PHP沒有被編譯。也許你沒有在你的web服務器上運行php模塊。 –

+0

@FooL就是這樣。謝謝! –

回答

3

檢查,當你在瀏覽器中打開test.php該回來的響應。

你的php沒有被編譯。也許你沒有在你的web服務器上運行php模塊。

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; 
}); 
+0

感謝您的提示。我完全忽略了這一部分。我現在感覺很新鮮,現在哈哈。 –