通过调用单独的页面重定向是否有意义?

时间:2016-03-23 13:56:49

标签: php jquery ajax

这是一个由jquery帖子通过按钮触发的注销页面。

注销脚本只是

<?php

session_start();

session_destroy();

header("Location: new location");

?>

当通过url导航到此页面时,它可以正常工作,会话被破坏,页面被重定向。但是当用jquery帖子调用它时

<script>
$.post("logout.php");
</script>

没有任何事情发生,可能是jquery帖子请求不起作用。

我只是想知道这样做是否没有意义。

2 个答案:

答案 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';
 }
}

希望这会有所帮助。谢谢。