PHP 未从 js 文件接收 AJAX POST

我已经尝试解决这个问题几个小时了,但找不到任何对我有帮助的答案。


这是我的 javascript 文件中的代码


function sendMovement(cel) {

  var name = "test";

  $.ajax({

      type: 'POST',

      url: '../game.php',

      data: { 'Name': name },

      success: function(response) {

          console.log("sent");

      }

  });

}

这是我的 PHP 文件中的代码(它位于 js 文件之外)


if($_SERVER["REQUEST_METHOD"] == "POST") {

  $data = $_POST['Name'];

  console_log($data);

}

调试时,我可以看到 AJAX 正在发送 POST 并且它确实在控制台“SENT”中打印,但它不打印 $data


更新:函数 console_log() 存在于我的 PHP 文件中并且可以工作


斯蒂芬大帝
浏览 137回答 2
2回答

长风秋雁

尝试获取 JSON 格式的响应,因为您的 js 应该具有 dataType:'JSON' ,如下所示JS 代码:-function sendMovement(cel) {  var name = "test";  $.ajax({      type: 'POST',      dataType:'JSON',   //added this it to expect data response in JSON format      url: '../game.php',      data: { 'Name': name },      success: function(response) {          //logging the name from response          console.log(response.Name);      }  });}在当前的服务器端代码中,您不会回显或返回任何内容,因此 ajax 响应中不会显示任何内容。php 服务器代码的更改:-if($_SERVER["REQUEST_METHOD"] == "POST") {    $response = array();  $response['Name'] = $_POST['Name'];  //sending the response in JSON format  echo json_encode($response);}

米琪卡哇伊

我通过执行以下操作修复了它:在我的 game.php 中,我添加了以下 HTML 代码(用于调试目的)<p style = "color: white;" id="response"></p>还在我的 game.php 中添加了以下内容if($_SERVER["REQUEST_METHOD"] == "POST") {&nbsp;&nbsp;&nbsp; $gameID = $_POST['gameID'];&nbsp; $coord = $_POST['coord'];&nbsp; $player = $_POST['player'];&nbsp; echo "gameID: " . $gameID . "\nCoord: " . $coord . "\nPlayer: " . $player;}并且在我的 custom.js 中我更新了function sendMovement(cel) {&nbsp; var handle = document.getElementById('response');&nbsp; var info = [gameID, cel.id, current_player];&nbsp; $.ajax({&nbsp; &nbsp; type: 'POST',&nbsp; &nbsp; url: '../game.php',&nbsp; &nbsp; data: {&nbsp; &nbsp; &nbsp; gameID: info[0],&nbsp; &nbsp; &nbsp; coord: info[1],&nbsp; &nbsp; &nbsp; player: info[2]&nbsp; &nbsp; },&nbsp; &nbsp; success: function(data) {&nbsp; &nbsp; &nbsp; handle.innerHTML = data;&nbsp; &nbsp; },&nbsp; &nbsp; error: function (jqXHR) {&nbsp; &nbsp; &nbsp; handle.innerText = 'Error: ' + jqXHR.status;&nbsp; &nbsp; }&nbsp; });}
打开App,查看更多内容
随时随地看视频慕课网APP