2012-02-28 70 views
2

我目前正在創建一個移動應用程序。我使用cakephp2.0作爲我的後端來處理請求和響應。我希望cakephp處理請求並將json響應發送回移動應用程序(應用程序工藝)。Cakephp作爲移動網站的後端

(1)對於用戶控制器,我這樣做:

public function index() { 
     $this->autoRender = false; 
     return new CakeResponse(array('body' => json_encode($this->User->find('all')))); 
    } 

(2)的AppController我這樣做:

var $components = array('RequestHandler'); 
function beforeFilter() { 
    if ($this->RequestHandler->isAjax()) { 
      Configure::write ('debug', 0); 
    } 
} 

(3)I創建單獨的HTML文件,該文件是不是在CakePHP文件夾以測試json響應:

<body> 
<a href="">jQuery</a> 
    <script type="text/javascript"> 
     $(document).ready(function(){ 
       $.ajax({ 
        type: "get", 
        url: "http://localhost/jungle/users", 
        success: function(response){      
        alert(response); 
        } 
       }); 

     }); 
     </script> 

</body> 

我沒有從cakephp後端得到任何響應,當我打開h (3)中提到的tml文件。我試着用螢火蟲,也沒有顯示任何反應。

然而,當我試圖從我的瀏覽器訪問CakePHP的用戶索引頁面中,JSON是漂亮的一面展示出來:

[{"User":{"id":"1","name":"John","mobile_code":"+65","mobile number":"901111234"}}] 

有人能幫助我嗎?

回答

2

您的設置沒有任何問題。我知道這聽起來很愚蠢,但是你是否已經在測試HTML中正確地包含了jQuery,並且它成功解除了請求?

要驗證的另一件事是您在哪裏託管您的測試HTML文件?它是從網絡服務器提供還是隻是坐在桌面上?如果它沒有被投放,那麼很有可能JavaScript被禁用並且沒有運行。

另外,isAjax is deprecated in CakePHP 2.而是使用this->request->is('ajax')來測試Ajax。這應該不會影響你的問題。

+0

Omg。你真了不起。我是一個愚蠢的比利!我應該把html文件放在wamp服務器上。非常感謝 – madi 2012-02-28 18:12:02