我在一台服务器上有一个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请求。
答案 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
}