我必须在表格中取值:
<script type="text/javascript">
var activeRequest;
$(document).ready(function(){
$(".i_search").on("click", function(event){
event.preventDefault();
activeRequest = $(this).closest('tr').find('.request').text();
renderElement();
});
});
function renderElement(inUrl){
$.ajax({
url: "/?pagename=SiteEntry_LT_EM/Advise/CS_Advise_Detail",
type: "POST",
data : {"advice_id":activeRequest}
})
.done(function( response ) {
$("#popUpDetail").html(response).fadeIn('slow');
});
}
</script>
在另一个jsp页面中,我有:
<%= ics.GetVar("advice_id") %>
但是,当我点击$(".i_search")
时,其他页面中的值ics.GetVar("advice_id")
不会发生变化。也许这个值保存在缓存中。
我使用PHP做了同样的工作,每次我改变数据时都会这样做。现在我更加困惑了。
在PHP中:
<?php echo $_POST["advice_id"]; ?>
答案 0 :(得分:0)
首先,使用POST时,不应在url中包含参数,而应在数据部分中包含参数。不要混合并双管齐下。
其次,如果您怀疑存在缓存问题,请在您的ajax调用中包含随机参数和/或设置cache:false,如下所示:
$.ajax({
url: "/",
type: "POST",
cache: false,
data :
{
"advice_id":activeRequest,
"pagename": "SiteEntry_LT_EM/Advise/CS_Advise_Detail"
"r": Math.random()
}
})
您还可以在ajax调用的servlet或jsp中设置no-cache标头,以防止浏览器缓存它:
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma","no-cache");