php中的header()无效

时间:2016-10-24 15:50:24

标签: javascript php jquery ajax

我是PHP的新手,请不要将此问题标记为重复,因为我已经搜索并在stackoverflow和其他网站上找到了很多解决方案,这里是我的代码login.php我尝试做的是将一些数据传递给controller.php:

 window.onload = function(){
$('#btnLogin').click(function() {
var val1 = $('#txtusername').val();
var val2 = $('#txtpassword').val();
var val3 = "login";
$.ajax({
    type: 'POST',
    url: 'controller.php',
    data: { action: val3, username: val1, password: val2 },
    success: function(response) {
    alert(response);    
    }
});
});
}  

如果我不想导航到另一个页面,那么它运作良好" index.php"因为在controller.php中,我收到了从login.php传递的所有数据,但是标题("位置:index.php")无效.Bellow是我的controller.php:

<?php
header("Location: index.php");
exit();
?>    

我尝试了一些解决方案,例如:&#34;删除空格&#34;,添加&#34; error_reporting(E_ALL)&#34;和&#34; ini_set(&#39; display_errors&#39;,&#39; On&#39;)&#34;和&#34; ob_start()&#34;到controller.php文件的顶部,但没有更好的事情发生。

2 个答案:

答案 0 :(得分:2)

你不能通过ajax请求来做到这一点。如果要在通过index.php处理数据后导航到controller.php,请在成功响应中使用jquery重定向。

success: function(response) {
    window.location.replace("index.php");   
}

答案 1 :(得分:0)

您正在进行ajax请求中的重定向。这不会重定向您的网页,它只会重定向ajax请求。而是返回一些json响应并在ajax回调中检查此响应,然后使用javascript重定向用户。