保持两个jsp页面的值

时间:2014-09-22 19:23:28

标签: javascript jquery ajax 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做了同样的工作,每次我改变数据时都会这样做。现在我更加困惑了。

在PHP中:

<?php echo $_POST["advice_id"]; ?>

1 个答案:

答案 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");