【问题标题】:Browser does not response to header redirect浏览器不响应标头重定向
【发布时间】:2018-07-18 00:07:38
【问题描述】:

请帮助...我是 php 新手。谢谢

php1 是通过 Post 方法向 php2 发送数据('1234')。 php2 应该使用 Header Location 重定向到带有数据('invalid')的 php3。

Chrome 的开发者工具显示一切顺利(发布数据发送和接收。获取数据发送和接收)。 不知何故,浏览器没有响应并停留在php1。我试过 Safari 和 Firefox。没有反应。 如果您能提供建议,将不胜感激。谢谢

这3个php文件是:

php1

<?php 
session_start();
$M = '';
if (isset($_GET['m'])) {
    $M = $_GET['m'];
}
?>
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $('#send').click(function () {
      var str = '1234';
      $.post('php2.php',
        {
        email: str
        },
        function (data, status) {
        }
      );
    });
});
</script>
</head>
<body>
<div>
<button id="send">SEND</button>
<br>
<?php echo $M; ?>
</div>
</body>
</html>

php2

<?php
session_start();
ob_start();
error_reporting(E_ALL);
if (!empty($_POST)){
    $Email = $_POST['email'];
    if (!filter_var($Email, FILTER_VALIDATE_EMAIL)) {
        header('Location: php3.php?m=invalid');
        exit();
    } 
} else {
    header('Location: php1.php?m=nodata');
    exit();
}
ob_end_flush();
?>

php3

<?php 
session_start();
$M = '';
if (isset($_GET['m'])) {
    $M = $_GET['m'];
}
?>
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div>
<?php echo $M; ?>
</div>
</body>
</html>

这是chrome开发者的截图:

【问题讨论】:

  • $.post('php2.php' ... 这是一个 Ajax 请求,你不会去 go 任何地方。
  • 您将请求从php2 重定向到php3,加载php1 的页面永远不会被指示去任何地方。
  • 如果你只想加载一个全新的页面,为什么还要使用 ajax?只需直接提交到 php2,它将重定向到任何地方。

标签: javascript php


【解决方案1】:

您应该像这样更改php1.php 的代码

<?php 
session_start();
$M = '';
if (isset($_GET['m'])) {
    $M = $_GET['m'];
}
?>
<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
    $('#send').click(function () {
      var str = '1234';
      $.post('php2.php',
        {
        email: str
        },
        function (data, status) {
          $("#content").html(data); // <----- ADDED
        }
      );
    });
});
</script>
</head>
<body>
<div id="content">
<button id="send">SEND</button>
<br>
<?php echo $M; ?>
</div>
</body>
</html>

【讨论】:

    猜你喜欢
    • 2012-02-06
    • 1970-01-01
    • 2017-12-24
    • 2013-01-23
    • 1970-01-01
    • 2019-08-18
    • 2016-08-14
    • 2013-09-24
    • 1970-01-01
    相关资源
    最近更新 更多