$ _POST数组为空

时间:2016-03-07 00:11:08

标签: php jquery ajax

我正在使用XAMPP和PHPStorm v9,在本地运行,这是一个执行AJAX回调的简单应用程序。

我的AJAX请求的服务器处理程序显示一个空的$ _POST数组,我不明白为什么。在我采用所有这些代码并在不同的服务器上运行之前,为了消除平台问题,有没有人知道$ _POST数组为什么会为空?有什么建议?感谢

XHR窗格显示已执行的帖子。 enter image description here

JS

if (valid) {

    var queryStr = 'fName=' + firstName.val() + '&lName=' + lastName.val() + '&email=' + email.val() + '&phone=' + phone.val();

    var f = firstName.val();
    var l = lastName.val();
    var e = email.val();
    var p = phone.val();

    $.ajax({
        type: "POST",
        url: '/ACS567-Projects/addContact.php',
        data: {
            fName: f,
            lName: l,
            email: e,
            phone: p
        },
        dataType: 'html',
        success: OnAddSuccess,
        error: OnAddFailure,
        timeout: 60000
    });
}

PHP处理程序

<?php

if(isset($_POST['fName'])) {

    $firstName = $_POST['fName'];
    $lastName = $_POST['lName'];
    $email = $_POST['email'];
    $phone = $_POST['phone'];
    $addressBook->addContact($firstName,$lastName,$email,$phone);

    echo "<b>success</b>";
    exit();
}

echo "<b>failure</b>";
exit();

1 个答案:

答案 0 :(得分:0)

数据不会自动变成可以在PHP脚本中使用的数组。阅读jQuery文档:

  

如果不是字符串,则将其转换为查询字符串。它附加到GET请求的URL。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个数组,jQuery会根据传统设置的值使用相同的键序列化多个值(如下所述)。

另外,你应该使用&#39;方法&#39;而不是&#39;类型&#39;如果你没有旧的jQuery版本。

有关.ajax函数的更多信息,请点击此处:

http://api.jquery.com/jquery.ajax/

您是否检查过您的客户端/浏览器以查看发布的内容并转储$ _POST变量以查看它是否真的为空?

相关问题