无法通过AJAX接收POST数据

时间:2019-01-02 10:13:38

标签: php jquery ajax

所以我想做的是使用Ajax发布将一些jQuery变量发送到我的PHP脚本中。但是,由于某些原因,我无法将PHP变量设置为包含jQuery变量的值。

我尝试了多种类型的Ajax数据,例如表单(new FormData();)和数组。

script.js

$.ajax({
  url: 'file.php',
  type: 'POST',
  data: {
    'document_id': document_id,
    'section_id': section_id,
    'active_state': active_state
  },
  beforeSend: function () {
    console.log('the data is: ' + document_id + section_id + active_state + '...');
  },
  success: function (response) {
    console.log(response + ' is locked!');
  },
  fail: function (error) {
    console.log(error + ' could not be locked');

});

file.php

print_r($_POST);

但是,在Ajax请求的成功函数中,我确实收到了带有适当变量的数组。当我检查PHP文件的输出时,它只会返回一个空数组。

这是我最终需要做的:

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

    $document_id = $_POST['document_id'];
    $section_id = $_POST['section_id'];
    $active_state = $_POST['active_state'];

    // echo back the data to the success function
    // proceed with insert into database
} else {

  echo 'the data has not been set';    

}

任何关于我可能做错事情的见解?

2 个答案:

答案 0 :(得分:-2)

尝试使用它来获取来自ajax请求的响应

<?php

   extract($_POST);

   print_r($_POST);
 ?>

答案 1 :(得分:-3)

尝试在ajax数据中添加令牌变量。

在当前页面中:

PHP

data = pd.Dataframe(data=values,index=index)

AJAX

session_start();
if (empty($_SESSION['token'])) {
$_SESSION['token'] = bin2hex(random_bytes(32));
}
$token = $_SESSION['token'];
相关问题