未在CakePHP中为分页设置isAjax参数

未在CakePHP中为分页设置isAjax参数,ajax,cakephp,pagination,cakephp-1.3,Ajax,Cakephp,Pagination,Cakephp 1.3,这个问题将更难解释,所以请耐心听我说。我已经为我的应用程序创建了ajax分页。以下是它在控制器中如何工作的核心代码(出于隐私考虑,某些代码明显更改或未显示): 我已经包含了RequestHandler组件。这段代码大部分是有效的,问题是在第二页之后,CakePHP(v1.3)没有设置AJAX请求。因此,第三个页面与第二个页面是相同的页面(重复),这是因为$page再次设置为1。同样奇怪的是,下面的页面加载很好。我已经检查了HTTP请求,AJAX请求和非AJAX请求之间有明显的区别,第二个页面加载

这个问题将更难解释,所以请耐心听我说。我已经为我的应用程序创建了ajax分页。以下是它在控制器中如何工作的核心代码(出于隐私考虑,某些代码明显更改或未显示):

我已经包含了RequestHandler组件。这段代码大部分是有效的,问题是在第二页之后,CakePHP(v1.3)没有设置AJAX请求。因此,第三个页面与第二个页面是相同的页面(重复),这是因为$page再次设置为1。同样奇怪的是,下面的页面加载很好。我已经检查了HTTP请求,AJAX请求和非AJAX请求之间有明显的区别,第二个页面加载问题请求通常是非AJAX请求。即使此代码在第二页上也返回false:

function isAjax() {
    return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest");
} 

为什么会这样?如果您需要我提供任何其他信息,请告诉我。我很高兴听到任何建议、解决方案和/或调试想法。

这听起来不像是CakePHP问题,听起来像是您的浏览器随请求发送的标题

我建议使用请求检查工具,如Fiddler(http://fiddler2.com/fiddler2/). 这将允许您检查来自所有调用的头、请求和响应

function isAjax() {
    return (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && $_SERVER['HTTP_X_REQUESTED_WITH']=="XMLHttpRequest");
}