[英]Limit page reload on ajax call with GET request
在我的应用程序中,如果URL具有某些$ _GET参数,我想在此AJAX更新之后更新会话并重新加载页面一次,以下是我的代码。
if($_GET['something']){
//do something
$.ajax({
type: "POST",
url: "localhost/example/ajaxpage.php",
data: {
foo: foo_test,
bar: bar_test,
},
success: function (data) {
window.location.reload();
}
});
}
但在页面重新加载时,它会再次获得$ _GET,因此页面将被重复加载。 如何解决此问题,以使页面在AJAX更新后仅重新加载一次。
更换
window.location.reload();
用
window.location.href = window.location.origin;
或在此处使用精确的URL
。
您可以在window.location.href
指定URL,而不是relaoad()
。
if($_GET['something']){
//do something
$.ajax({
type: "POST",
url: "<?= $HOMEPAGE_ROOT; ?>/example/ajaxpage.php",
data: {
foo: foo_test,
bar: bar_test,
action: 'reload'
},
success: function (data) {
window.location.href = window.location.origin;
}
});
}
在这里,您可以使用window.location.origin
或您自己的URL(其中something
内容未作为get参数)。
像这样检查会话变量:
if($_GET['something'] && isset($_SESSION['test']))
或会话值。
使用以下代码
<?php
if($_GET['something'] & !isset($_GET['flag'])){
?>
<script>
//do something
$.ajax({
type: "POST",
url: "localhost/example/ajaxpage.php",
data: {
foo: foo_test,
bar: bar_test,
},
success: function (data) {
window.location.href ="Your Url"?something=xyz&flag=1;
}
});
</script>
<?php
}
?>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.