PHP7中的Delete方法未接收参数

PHP7中的Delete方法未接收参数,php,angularjs,rest,ionic-framework,Php,Angularjs,Rest,Ionic Framework,我们正在编写一个Restful API,以便从ionic应用程序调用。我们从angular service发送此代码: .service('ServiceName', function($http) { return { borrarAlumno: function(par) { var link = "http://localhost/ws/index.php"; return $htt

我们正在编写一个Restful API,以便从ionic应用程序调用。我们从angular service发送此代码:

      .service('ServiceName', function($http) {
       return {
           borrarAlumno: function(par) {
               var link = "http://localhost/ws/index.php";
               return $http.delete(link, {
                   id: par.id
               })
           }
       }
   })
当我们试图从php中读取id参数时,我们什么也得不到。这是我们正在使用的代码:

    if (isset($_SERVER['HTTP_ORIGIN'])) {
    header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
    header('Access-Control-Allow-Credentials: true');
    header('Access-Control-Max-Age: 86400'); // cache for 1 day
}


// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {

    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
        header("Access-Control-Allow-Methods: GET, POST, DELETE, PUT, OPTIONS");

    if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
        header("Access-Control-Allow-Headers:{$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

    exit(0);
}

$input = file_get_contents('php://input');
print_r($_SERVER['REQUEST_METHOD']);
exit();
我们已经尝试过使用类似的代码来使用PUT、get和POST方法来获取参数,并且成功了

任何帮助都将不胜感激

编辑:

此php称为另一个php:

class AlumnosAPI
{
    public function API()
    {
        header('Content-Type: application/JSON');
        $method = $_SERVER['REQUEST_METHOD'];

        switch ($method)
        {
          case 'GET':
              include('get.php');
              break;
          case 'POST':
              include('post.php');
              break;
          case 'PUT':
              include('put.php');
              break;
          case 'DELETE':
              include('delete.php');
              break;
          default:
              echo 'NOT SUPPORTED';
              break;
        }
    }

}
编辑2:delete.php的完整代码

  if (isset($_SERVER['HTTP_ORIGIN']))
  {
        header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
        header('Access-Control-Allow-Credentials: true');
        header('Access-Control-Max-Age: 86400');    // cache for 1 day
  }


    // Access-Control headers are received during OPTIONS requests
  if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS')
  {

      if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
          header("Access-Control-Allow-Methods: GET, POST, DELETE, PUT, OPTIONS");

      if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
          header("Access-Control-Allow-Headers:{$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");

      exit(0);
  }

  $valor['borrado'] = 0;

  include('conexion.php');

  $id = "";

  //parse_str(file_get_contents('php://input'), $delete);
  $input = file_get_contents('php://input');
  print_r($input);
  exit();

  foreach (array_keys($delete) as $key)
  {
    $$key = $delete[$key];
  }

  if ($id != "")
  {
    //PREPARAMOS LA SENTENCIA SQL
    $sql = "DELETE FROM Alumnado WHERE `ID`=?";

    $resultado1=$conexion->prepare($sql);

    $resultado1->bind_param('i', $id);

    $resultado1->execute();

    $valor['borrado'] = $resultado1->affected_rows;
  }

  $datos=json_encode($valor);

  echo $datos;

Angular不会为
DELETE
发送请求正文,因此您必须从URL读取id

.service('ServiceName', function($http) {
       return {
           borrarAlumno: function(par) {
               var link = "http://localhost/ws/index.php";
               return $http.delete(link, {
                   params : {id: par.id}
               })
           }
       }
   })

通过
$\u get['id']
而不是
文件获取内容('php://input');

您提到删除,但在PHP代码中,您在哪里提到删除?我看到的唯一选项是我们从另一个PHP代码重定向到此PHP,如:[code]case'DELETE]:include('DELETE.PHP');打破[/code]继续分享delete.php的代码,告诉我们您是否验证了delete.php被称为actuallydelete.php是我之前发布的代码。已验证是否调用了delete.php,我尝试回显一个字符串,结果成功了。无论如何,我在第二次编辑中发布了delete.php的完整代码。因此,delete.php的第一部分被跳过,因为请求方法等于delete。然后你应该在print\r($input)结束。上面说什么?