我是非常新的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传递的所有数据,但头("Location: index.php")不工作。下面是我的controller.php:
<?php
header("Location: index.php");
exit();
?>
我尝试了一些解决方案,如:"删除空格",添加"error_reporting(E_ALL)"one_answers"ini_set('display_errors', 'On')"one_answers"ob_start()"放到controller.php文件的顶部,但是没有更好的结果。
您不能通过ajax请求做到这一点。如果你想在通过controller.php
处理完数据后导航到index.php
,在你的成功响应中使用jquery重定向。
success: function(response) {
window.location.replace("index.php");
}
您正在ajax请求中进行重定向。这不会重定向您的页面,它只会重定向ajax请求。相反,返回一些json响应,并在ajax回调中检查此响应,然后使用javascript重定向用户。