POST变量没有被jQuery ajax请求传递

时间:2015-01-23 08:00:57

标签: php jquery ajax

单击按钮时,我已经尝试了几个小时来调用php函数。正在打开ajax.php文件并且它返回正常,但是没有传递post变量。这是我的jQuery代码:

$(function() {
    $("#button-id").click(function() {
        $.post('functions/ajax.php',
          { param1: "value1", param2: "value2" },
          function(data) {
              alert(data);
          }
        );
    });
});

以下php代码导致显示一个空数组。

<?php
    print_r($_POST);
?>

我不能为我的生活弄清楚为什么数据变量没有传递给ajax.php文件。可能导致这种情况的原因是什么?

4 个答案:

答案 0 :(得分:0)

你应该这样做:

$.post("functions/ajax.php", {
    param1: "value1",
    param2: "value2"
}).done(function (data) {
    alert("Data Loaded: " + data);
});

http://api.jquery.com/jquery.post/(在示例下)

答案 1 :(得分:0)

这对你有帮助。

$.ajax({
    type : "POST",
    url:"<?=Yii::app()->createUrl('site/Enquiryvalidation');?>",
    data:{"param1: "value1", param2: "value2"},
    success:function(data){
alert(data);
}
});

答案 2 :(得分:0)

原来问题是由我的.htaccess文件引起的。因为我在没有.php扩展名的情况下将所有.php文件请求重定向到各自的页面,所以每次打开文件时都会执行额外的get请求,导致所有以前的post变量都丢失。

答案 3 :(得分:0)

我有同样的问题是由我的.htaccess删除php文件扩展名引起的。要解决此问题,只需删除请求中的php扩展名:

$.post('functions/ajax',
    { param1: "value1", param2: "value2" },
    function(data) {
        alert(data);
    }
);