我正在使用smoothState.js,我遇到了提交表单然后重新加载(刷新)页面的问题。
当我第一次提交时,它按预期工作。页面将刷新输入中的新/已更改数据。但是当我第二次提交它时,数据显然会被发布,但是在刷新时,旧的未更改数据会被加载。只有在我进行手动刷新(再次单击浏览器中的刷新按钮)后才会出现新的更改数据。 这只发生在第二/第三/第四等...在同一表格上提交到同一页面。
$('#companyProfile').submit(function(e) {
e.preventDefault();
if ( $(this).parsley().isValid() ) {
var $form = $("#companyProfile");
$.ajax({
type : "POST",
async : true,
url : '/customerProfile.do?',
data : $form.serialize(),
success : function(data) {
console.log("Submit happened");
var smoothState = $('#main-cont').smoothState().data('smoothState');
smoothState.load(window.location.reload);
}
});
return false;
}
});
我添加了一个console.log("Submit happened");
,其中发生的情况是,第一次提交帖子的来源应该是viewOrderSettings.jsp
,但第二次来自{{1}如下面的屏幕截图所示。如果这有帮助...
答案 0 :(得分:1)
如果由缓存引起,您可以尝试一些选项
在请求结尾附加一个随机数(或日期)。
smoothState.load(window.location+'?'+Math.random());`
如果您传递其他变量,可能需要将?
更改为&
。
<meta http-equiv="Cache-control" content="no-cache">
<meta http-equiv="Expires" content="-1">
<?php
header("Cache-Control: no-cache, must-revalidate");
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
?>
<!-- Here you'd start your page... -->