跨越两个JSP页面
问题描述:
我必须采取一个表中的值保持值:跨越两个JSP页面
<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和它的工作原理,每次我cliked数据更改。现在我更加困惑。
在PHP:
<?php echo $_POST["advice_id"]; ?>
答
首先,使用POST的时候,你不应该在URL中包含但在数据部分的参数。不要混合,并采取两种方式。
其次,如果你怀疑一个缓存的问题,在你的Ajax调用,包括随机参数和/或设置缓存:假的,就像这样:
$.ajax({
url: "/",
type: "POST",
cache: false,
data :
{
"advice_id":activeRequest,
"pagename": "SiteEntry_LT_EM/Advise/CS_Advise_Detail"
"r": Math.random()
}
})
,您还可以在设置无缓存头servlet或jsp被ajax调用,以防止浏览器缓存它:
response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
response.setHeader("Pragma","no-cache");
+0
谢谢,它是SiteEntry的Oracle Web Center站点中的一个参数:“SiteEntry_LT_EM/Advise/CS_Advise_Detail”缓存规则:已删除的缓存。 – AndreFontaine 2014-09-23 20:58:53
已经提供的页面不会被更新,除非他们正在进行ajax轮询或类似的事情。 – developerwjk 2014-09-22 19:39:00
即使我用'onclick'事件再次打电话? – AndreFontaine 2014-09-23 14:40:06
任何想法? @developerwjk – AndreFontaine 2014-09-23 17:16:07