Ajax帖子什么都不返回

时间:2016-06-24 07:26:31

标签: php jquery ajax post


我试图将一些数据发送到一个PHP文件但由于某种原因它没有被发布。我在var_dump上的php文件的控制台日志中收到一个空数组 这是我在这些文件中的代码:

  

的index.php

<button type="button" class="btn btn-warning" id="resetPassword">Reset Password</button>

<script>
  $(document).ready(function (e){
   $("#resetPassword").click(function(e){
      e.preventDefault();
      $.ajax({
        url: "scripts/process.php",
        type: "POST",
        data: {name: 'test'},
        cache: false,
        processData:false,
        success: function(data) {
          if (data === 'Success') {
            new PNotify({
              title: 'Success!!!',
              text: 'Request completed successfully.',
              type: 'success',
              styling: 'bootstrap3'
            });
            $('#exampleModal').modal('hide');
            $('#datatable-buttons').DataTable().ajax.reload();
          } else {
            console.log(data);
            new PNotify({
              title: 'Error!!!',
              text: data,
              type: 'error',
              styling: 'bootstrap3'
            });
            //document.getElementById("status").className += " alert-danger";
            //$("#status").html(data);
          }
        },
        error: function (xhr, ajaxOptions, thrownError) {
          alert("ERROR:" + xhr.responseText+" - "+thrownError);
        } 
      });
    });
  });
</script>
  

这是php文件process.php。

var_dump($_POST);
  

结果在console.log中:

array(0) {}
  

解决方案:

删除processData: false

谢谢你们。

4 个答案:

答案 0 :(得分:2)

删除processData:false,section然后再试一次。

答案 1 :(得分:0)

试试这个

之前或之后
e.preventDefault();

var formData = $("#yourform_id").serializeArray(); //form data

并用此行数据替换数据

data: formData,

删除

processData:false,

答案 2 :(得分:0)

在process.php文件中返回数据时使用的是什么? ECHO还是退货?

尝试ECHO,如果它不起作用,则尝试RETURN语句。其余的代码似乎没问题。

要调试在scripts / process.php上使用print_r()并在浏览器的控制台中检查它是否输出。此外,您可以使用toSource of javascript来检查变量的数据

答案 3 :(得分:0)

如果您尝试None,其需求数据是原始字符串

改变
processData:false

进入

   data: {name: 'test'},