我一直坚持用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 才能使其工作?提前谢谢。
请务必使用 CorsSlim
的 slim3
分支:
{
"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);