我'使用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.
如何解决?
答案 0 :(得分:0)
解决方案非常简单。在自定义资源http://example.com/ajaxTest的页面中,调用了片段 getAJAX ,我只需取消选中复选框&#34; Cacheable&#34;。
答案 1 :(得分:0)
正确的方法是
[[!getAJAX]]
现在不缓存该代码段