0

这是我目前的情况和问题。我有 2 个下拉菜单,当我在第一个更改选择时,第二个根据我选择的内容填充数据(因为它当然使用 ajax)。当我向 提交数据时@Controller,它会将我返回到同一页面,并且当我尝试再次执行相同操作时(选择第一个下拉列表中的选择选项以在第二个中获取有效信息)无论我选择什么,我都会从先前的请求中获取信息(在我返回该页面之前的旧版本)。那就是:控制器得到错误的信息(来自上一页的旧信息),它用旧的请求信息填充第二个下拉列表。

就像我的 ajax 调用打开了一些缓存并使用旧信息一样。这就是我的代码中的样子

<portlet:resourceURL var="getURL" id="dataurl" escapeXml="false"></portlet:resourceURL>

脚本:

<script>
var type = $("#pi_selectType option:selected").val();

$.ajax({
    method : "POST",
    url : "${getURL}",
    data : {
        info1: "${PO.data1}",
        info2 : type
    },
    dataType : "json",
    success : function(data) {
    ....
});
<script>

我试图在ajax调用中添加参数:

cache: false

但问题仍然存在。

有没有办法在ResourceMapping请求之后重置 Portlet url,或者类似的东西,因为我认为这可能会解决这个问题。欢迎任何建议。

4

1 回答 1

0

使用当前时间戳作为第三个参数。我过去遇到过这样的问题,这就是我解决的方法。

    data : {
       info1: "${PO.data1}",
       info2 : type,
       info3 : <current timestamp long>
    },

通过将当前时间戳作为参数附加到请求中,它始终被视为新请求。

于 2013-09-27T05:36:46.247 回答