ajax请求的参数不会改变

时间:2014-05-12 13:40:06

标签: php jquery ajax modx

我'使用cms ModX并希望使用post方法向服务器发送Ajax请求。问题是第二个,第三个等一个请求的后期数据没有变化,并且与第一个请求中的相同。

为了澄清这种情况,我提供了以下示例。

javascript如下:

var reqCount = 0;       
$(document).ready(function () {
    $(window).scroll(function() {   

    var dataToPost = {'reqCount' :reqCount};
    $.ajax({
        url:  'http://example.com/ajaxTest',    
        method: 'POST',
        data: dataToPost,
        dataType:"json",
        success:  function(data){

            ajaxCountFromServer = data['ajaxCount'];

            reqCount=reqCount+1;
            }

        });
     }

}

我还使用代码在Modx中创建了地址为http://example.com/ajaxTest的资源,并运行了代码段:

[[getAJAX]]

getAJAX 代码段如下:

<?php
    if ($_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest') {

       $reqCount = $_REQUEST['reqCount'];

       $json_obj = array("ajaxCount" =>$reqCount);
       return json_encode($json_obj);
    }
?>

因此,在第一次滚动 reqCount = 0之后,它会传递到服务器并在服务器响应(成功回调) ajaxCountFromServer = 0和 reqCount = 1。一切都运作良好。

但是,在第二次滚动 reqCount = 1并且在服务器响应 ajaxCountFromServer = 0之后,它应该是1.

如何解决?

2 个答案:

答案 0 :(得分:0)

解决方案非常简单。在自定义资源http://example.com/ajaxTest的页面中,调用了片段 getAJAX ,我只需取消选中复选框&#34; Cacheable&#34;。

答案 1 :(得分:0)

正确的方法是

[[!getAJAX]]

现在不缓存该代码段