2012-02-28 17 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は、CakePHPではない別のHTMLファイルを作成し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> 

私はhを開いたときにcakephpバックエンドから何の応答も得られません(3)で述べたtmlファイル。火かき棒を使用してみましたが、応答も表示されませんでした。私は私のブラウザからのCakePHPユーザーインデックスページにアクセスしようとしたときただし、JSONがうまく出て表示されている

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

は、誰かが私を助けてもらえますか?

答えて

2

設定に間違いはありません。私はこれがばかげているのは分かっていますが、テスト用のHTMLにjQueryを正しく組み込んでおいて、リクエストを成功させることができましたか?

検証するもう1つの点は、テスト用のHTMLファイルをどこにホスティングしているかです。 Webサーバーから提供されているのですか、それともデスクトップに座っていますか?それが提供されていない場合は、javascriptが無効にされ、実行されていない可能性があります。

代わりに、isAjax is deprecated in CakePHP 2.代わりにthis->request->is('ajax')を使用してAjaxをテストしてください。あなたの問題に影響はありません。

+0

0mg。あなたは素晴らしいです。私は愚かなビリーです! htmlファイルをwampサーバーに置いたはずです。どうもありがとうございます – madi

関連する問題