Ajax表单发布到php脚本,但是$ _POST在php脚本中为空
我有一个与我们联系的表格,该表格通过ajax发布数据。在表单上,提交ajax将数据发布到PHP脚本,但是$ _POST在PHP脚本中始终为空。发送标头,请求有效负载具有我需要的所有发布信息,但是$ _POST在PHP脚本中为空。
HTML表单
<form action="contact.php" method="post" novalidate="novalidate"
id="contact-form">
<input name="name" id="name" type="text" value="" >
<input type="text" name="address" id="address" value="" >
<input type="submit" value="Send" id="submit_contact">
</form>
JQUERY
$.ajax({
type: 'POST',
url: 'contact.php',
dataType: 'json',
contentType: 'application/json',
cache: false,
data: $('#contact-form').serialize(),
success: function(data) {
if(data.info !== 'error'){
//success
} else {
console.log(JSON.stringify(data));
//failure
}
}
});
PHP
if(isset($_POST['name']) and isset($_POST['address']))){
//Process
} else {
//success
}
$ _ POST始终返回null,但是我想获取张贴的名称和地址值。
答案 0 :(得分:3)
contentType: 'application/json',
您声称自己正在发布JSON,PHP没有默认的解析器,因此PHP不会尝试解析它并且不会填充$_POST
。
因为您没有发布JSON($('#contact-form').serialize()
返回URL编码的数据,而不是JSON),只需删除该谎言即可。