繁体   English   中英

无法通过 AJAX 接收 POST 数据

[英]Can't receive POST data through AJAX

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

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

脚本.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');

});

文件.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';    

}

关于我可能做错了什么的任何见解?

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

<?php

   extract($_POST);

   print_r($_POST);
 ?>

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

在您当前的页面中:

PHP

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

AJAX

data: {'_token': <?php echo $token; ?>}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM