AJAX表单发布到PHP脚本,但$ _POST在PHP脚本中为空

时间:2019-01-04 12:47:55

标签: php jquery ajax

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,但是我想获取张贴的名称和地址值。

1 个答案:

答案 0 :(得分:3)

contentType: 'application/json',

您声称自己正在发布JSON,PHP没有默认的解析器,因此PHP不会尝试解析它并且不会填充$_POST

因为您没有发布JSON($('#contact-form').serialize()返回URL编码的数据,而不是JSON),只需删除该谎言即可。