这是一个由jquery帖子通过按钮触发的注销页面。
注销脚本只是
<?php
session_start();
session_destroy();
header("Location: new location");
?>
当通过url导航到此页面时,它可以正常工作,会话被破坏,页面被重定向。但是当用jquery帖子调用它时
<script>
$.post("logout.php");
</script>
没有任何事情发生,可能是jquery帖子请求不起作用。
我只是想知道这样做是否没有意义。
答案 0 :(得分:2)
首先使用$.get
代替$.post
,因为速度要快得多。
这是一个由jquery帖子通过按钮触发的注销页面。
header("Location: new location");
将导致logout.php本身重定向,并且只会更改返回的reslut,并且不会重定向调用者页面本身。
尝试:
<script>
$.get('logout.php', function(){ documnt.location.href='/index.php' });
</script>
这将在ajax被执行后重定向到您想要的页面。
答案 1 :(得分:0)
header("Location: new location");
这个PHP代码当然会在作为文件加载时重定向。但是,当涉及到
时<script>
$.post("logout.php");
</script>
这是一个AJAX请求。 AJAX请求只是请求页面并响应页面的HTML内容。因此,header()
函数不会重定向<script>
所在的页面。
而不是$.post
您可能想要使用$.ajax
$.ajax
{
url: 'logout.php',
type: 'POST',
contentType: false,
processData: false,
success: function(){
window.location='new location';
}
}
希望这会有所帮助。谢谢。