AJAX正确发送变量,但无法在PHP中检索它

时间:2013-04-29 16:22:41

标签: php javascript ajax post get

我通过AJAX将变量(winner_id)传递给ajax.php。似乎ajax工作正常,它传递变量,但我的ajax.php似乎没有得到它。我无法将其分配给php变量以供进一步使用。

这是我的代码:

JavaScript(AJAX)

function ajaxCall(winner_id) {

        $.ajax
        ({
                url: "ajax.php?winner_id=" + winner_id,
                type: "GET",
                success: function(response)
                  { 
                     alert("The winner was passed!");
                  }
        });
};
ajaxCall(winner_id);

PHP (ajax.php)

<?php 
session_start();

$winner_id = $_GET['winner_id'];
echo json_encode(array("winner_id" => $winner_id));

exit;

?>

现在,例如我在AJAX中传递 winner_id = 3 。当我打开它开发人员工具/网络/点击ajax.php /预览时,这就是我所看到的:

winner_id:“3” - &gt;这是正确的!

但是,如果我直接在浏览器中调用ajax.php,我会看到:

{
    winner_id: null
}

如果我 var_dump($ _ GET,$ _POST),我会得到: array(0){} array(0){}

我100%肯定我的ajax调用正常工作,但是我不知道为什么我不能在php中获取值。我在stackoverflow上看过类似的问题,但无法找到答案。

我正在使用.htaccess进行错误转发,也许这可能是一个问题,因为对于其他人来说这个代码运行得很好。我真的需要帮助!谢谢!

1 个答案:

答案 0 :(得分:0)

  

现在,例如我在AJAX中传递winner_id = 3。当我打开它时   开发者工具/网络/点击ajax.php /预览这就是我   见:

winner_id: "3" -> which is correct!

如果您检查开发人员工具中的响应,您还应该看到:

{
    winner_id: 3
}

如果您在浏览器中调用ajax.php,那么是,winner_id将为null。但是,如果您致电ajax.php?winner_id=3,那么您应该会看到与上述相同的JSON响应。