我正在使用XAMPP和PHPStorm v9,在本地运行,这是一个执行AJAX回调的简单应用程序。
我的AJAX请求的服务器处理程序显示一个空的$ _POST数组,我不明白为什么。在我采用所有这些代码并在不同的服务器上运行之前,为了消除平台问题,有没有人知道$ _POST数组为什么会为空?有什么建议?感谢
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();
答案 0 :(得分:0)
数据不会自动变成可以在PHP脚本中使用的数组。阅读jQuery文档:
如果不是字符串,则将其转换为查询字符串。它附加到GET请求的URL。请参阅processData选项以防止此自动处理。对象必须是键/值对。如果value是一个数组,jQuery会根据传统设置的值使用相同的键序列化多个值(如下所述)。
另外,你应该使用&#39;方法&#39;而不是&#39;类型&#39;如果你没有旧的jQuery版本。
有关.ajax函数的更多信息,请点击此处:
http://api.jquery.com/jquery.ajax/
您是否检查过您的客户端/浏览器以查看发布的内容并转储$ _POST变量以查看它是否真的为空?