SlimPHP - 有没有办法将CorsSlim与Slim v3一起使用


SlimPHP - is there way to use CorsSlim with Slim v3?

我一直坚持用AngularJS

做一个REST API,用AngularJS做后端的SlimPHP。 当我只使用 $http.get 和 $http.post 时,一切都可以,但不适用于 $http.delete 和 $http.put。我设置了标题:

$app = new 'Slim'App();
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Headers: Content-Type');
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS');

但这没有帮助,所以我发现有CorsSlim这样的东西,但是当我写这篇文章时:

require __DIR__ . '/vendor/autoload.php';
$app = new 'Slim'App();
$app->add(new 'CorsSlim'CorsSlim());

我非常容易遇到以下问题,即使在通过作曲家安装 slim 和 corsslim 之后也是如此。

致命错误:在第 5 行的/wwwpath/vendor/palanik/corsslim/corsslim.php 中找不到类"Slim''Middleware"

在他们的CorsSlim GitHub https://github.com/palanik/CorsSlim 上,我发现他们将slim限制为<3.0版本,因此它与我的Slim不兼容。

所以,问题是:有没有办法使用 Angular 和 Slim v3 的获取/发布/放置/删除请求制作这样的 REST API,或者我必须将整个后端部分重新制作到 v2 才能使其工作?提前谢谢。

请务必使用 CorsSlimslim3 分支:

{
  "require": {
    "palanik/corsslim": "dev-slim3"
  }
}

然后你可以简单地使用它:

<?php
require ('./vendor/autoload.php');
$app = new 'Slim'Slim();
$app->add(new 'CorsSlim'CorsSlim());
?>

但不要忘记添加选项:

$corsOptions = array(
  "origin" => "*",
  "exposeHeaders" => array("Content-Type", "X-Requested-With", "X-authentication", "X-client"),
  "allowMethods" => array('GET', 'POST', 'PUT', 'DELETE', 'OPTIONS')
);
$cors = new 'CorsSlim'CorsSlim($corsOptions);
$app->add($cors);