2016-07-28 2 views
0

私はあるサーバーにapiを持ち、もう一方のサーバーにファイルを表示しています。私がajaxリクエストを使用すると、Cake php 2xがajaxリクエストを検出していません

の値は
$this->request->is('ajax') 

が常にfalseを示しています。しかし、ローカルのxamppサーバーでうまく動作します。私はまた、要求しているサーバーの原点を有効にしています。私は何をすべきか。それはクロスドメインのためですか?

ビューから私のアヤックスは、私は主な問題は、したがって、ケーキができなかった、ときライブサーバーにAJAXリクエストがそうヘッダ

X-Requested-With:XMLHttpRequest; 

を持っていないということです発見したしかし

$.ajax(
      { 
       url:'http://12.34.567.890/Users/getu.json', 
       // url:'<?php echo URL; ?>Users/getu.json', 
       type:"POST", 
       data:{access_token:'<?php echo $_SESSION["token"]->access_token; ?>', api_key:"***************"}, 
       async:false, 
       success:function(res) 
       { 
        console.log(res); 
       } 
      }); 

ですajaxリクエストを認識します。

+0

コントローラでリクエストハンドラコンポーネントを使用していますか? 'public $ components = array( 'RequestHandler');' –

+0

はい、私はそれを私のappControllerに持っています。 – user6367045

答えて

0

あなたの問題はおそらくあなたのajaxコールにあります。リクエストを実行しているときに、使用しているデータタイプは何ですか? あなたは、クロスドメインAJAX呼び出しを行う必要がある場合、あなたはこのようなあなたのAJAX呼び出しでデータ型としてJSONPを使用するようにしました:あなたのcontroller-に続いて

$.ajax({ 
    url: 'http://my_remote_server/controller/action', 
    dataType: 'jsonp', 
    success: function(res) { 
     // do stuff with res 
     alert("Success"); 
    }, 
    error:function() { 
     alert("Error"); 
    } 
}); 

>アクションの使用AJAX要求を検出するために、以下:

if($this->request->is('ajax')) { 
    // process the request and send output 
} 
+0

私はすでに要求元のドメインへのアクセス元を許可しているので、dataTypeをjsonpとして含める必要はありません。 – user6367045

関連する問題