有没有办法在页面中声明 iframe,以便每次刷新页面时都会清除其中的所有 session 变量?
现在我有一个用 .NET MVC 编写的 Web 应用程序,它在其中一个页面上加载一个 iframe,该 iframe 指向另一个用 PHP 编写的应用程序。基本上发生的情况是,当我刷新整个页面时,iframe 正在记住 session 状态,但理想情况下每次都希望重新启动它。有什么方法可以做到这一点吗?或者我需要在页面刷新时在 iframe 中调用注销脚本吗?
最佳答案
这只是一个概念证明,但它确实有效。 您的项目缺少一些信息,但是:
您可以为第一次访问创建cookie, 如果用户重新加载页面并且 cookie 是否存在
加载带参数的iframe,否则加载普通iframe (代码故意简短以生成 iframe)
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>with iframe</title>
<script>
function checkFirstVisit() {
if(document.cookie.indexOf('checkreload')==-1) {
document.cookie = 'checkreload=1';
document.write('<iframe width="560" height="315" src="content.php"></iframe> ');
}
else {
document.write('<iframe width="560" height="315" src="content.php?reloaded=yes"></iframe>');
}
}
</script>
</head>
<body onload="checkFirstVisit()">
</body>
</html>
在你的 php 代码(iframe)中, 只需在需要时检查并取消设置即可
<?php
session_start();
if(isset($_GET['reloaded'])) {
unset($_SESSION['name']);
} else {
$_SESSION['name'] = 'nameSession';
}
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>frame</title>
</head>
<body>
<p>
<?php
if(isset($_SESSION['name'])) {
echo $_SESSION['name'];
}else{
echo 'no name now !';
}
?>
</p>
</body>
</html>
不要忘记在方便时使用 cookie(以管理 session ) 希望对您有帮助
关于javascript - HTML PHP : Preventing an iframe from remembering session state on page refresh,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37934301/