javascript - 无法获取 AJAX 发送的 php POST

标签 javascript php jquery ajax post

我知道这里有很多类似的问题,但我查阅了 20 多个问题,但没有一个解决方案适合我。

问题是:我正在向我的index.php 发送一个ajax post 值。当我查看 Firebug 时,该值就在那里,但是当我尝试在页面上回显它时,POST 为空。我真的很纠结这个。

这是我的完整代码:

<?php
    if(isset($_POST['action']))
    {
        echo $_POST['action'];
    }
?>
<!DOCTYPE html>
<html>
<head>
    <title>Test</title>
    <meta charset="utf-8">

    <!-- JQUERY LIBRARY AND SCRIPTS -->
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
</head>
<body>
    <a href="index.php">Test</a>

    <script type="text/javascript">
        $(document).ready(function()
        {
            $('a').on('click', function()
            {                
                $.ajax({
                    url: 'index.php',
                    type: 'POST',
                    data: {action: 'clicked'},
                    success: function(data)
                    {
                        console.log(data);
                        alert('Done!');
                    },
                    error: function(jqXHR, textStatus, errorThrown)
                    {
                        alert(errorThrown);
                    }
                });
                return false;
            });
        });
    </script>

</body>
</html>

最佳答案

此代码不会尝试将其打印到页面,而只是在 ajax 响应中在整个 HTML 文档前面添加一个“clicked”字符串。如果您想在浏览器中显示此内容,则需要将该数据打印到页面。如果您检查 FireBug 中的控制台,您将看到 Ajax 调用的响应正是我上面所描述的。

现在,如果您想将该值打印回您的页面,这是我的建议,您创建一个单独的文件,ajax.php:

<?php
if(isset($_POST['action']))
{
    echo $_POST['action'];
}
?>

并修复你的index.php以包含一些你要打印该值的元素。 IE。添加<div id="response-results"></div>就在您的 元素之后。然后更改您的 Ajax 调用以转到 ajax.php,而不是 index.php。

现在您需要将 Ajax 响应填充到呈现的页面,这可以简单地使用 jQuery 完成,如下所示:

$("#response-results").html(data);

当然,这会进入 ajax 调用的成功处理程序。

关于javascript - 无法获取 AJAX 发送的 php POST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36428726/

相关文章:

javascript - Date.now() 返回以微秒为单位的值,而不是以毫秒为单位的值

javascript - 将新数组插入二维数组

php - 如何在跟踪数据集更改的同时最好地构建数据库

javascript - 在数组中搜索文本区域仅查找子字符串

php - jquery组合两个mysql值

javascript - 使用javascript交换两个文本框中的值

javascript - Meteor 账户路由

php - 无法使用 composer 在 laravel 中安装 PHP-FFMpeg/PHP-FFMpeg 库

php - 在 Linux 上升级 PHP 版本 5.6 -> 7 个问题

javascript - 输入上的 Bootstrap 启用按钮