Cake php 2x没有检测到ajax请求

时间:2016-07-28 05:34:31

标签: php ajax cakephp

我在一台服务器上有一个api,另一台服务器上有查看文件。当我使用ajax请求时,

的值
$this->request->is('ajax')

始终显示为false。但它在本地xampp服务器上工作正常。我还为请求服务器启用了原点。我该怎么办。是因为跨域。

我的ajax来自于

$.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请求没有标题

X-Requested-With:XMLHttpRequest;

因此,蛋糕无法识别ajax请求。

1 个答案:

答案 0 :(得分:0)

你的问题可能出在你的ajax电话中。当您执行请求时,您使用的是什么数据类型? 如果您需要进行跨域ajax调用,则必须在ajax调用中使用JSONP作为dataType,如下所示:

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

然后在您的controller-&gt;操作中使用以下命令检测ajax请求:

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