2016-02-26 88 views
0

我一直在用前端的AngularJS和后端的SlimPHP制作REST API。当我仅使用$ http.get和$ http.post,但不能与$ http.delete和$ http.put一起使用时,everuthing是可以的。 我设置标题:SlimPHP - 有没有办法在Slim v3上使用CorsSlim?

$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()); 

我immeaditely得到以下问题,即使在通过作曲家安装slim和corsslim之后。

致命错误:类“修身\中间件”不/wwwpath/vendor/palanik/corsslim/CorsSlim.php发现第5行

在他们CorsSlim的GitHub https://github.com/palanik/CorsSlim我发现,他们限制了他们渺茫<版本3.0,所以它与我的Slim不兼容。

所以,问题是:是否有任何方法可以通过Angular和Slim v3获得/ post/put/delete请求来创建这样一个REST API,或者我必须将整个后端部分重新制作为v2以使其工作? 在此先感谢。

回答

4

请务必使用slim3 branchCorsSlim的:

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

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

<?php 
require ('./vendor/autoload.php'); 

$app = new \Slim\Slim(); 

$app->add(new \CorsSlim\CorsSlim()); 
?> 
0

但是不要忘记添加选项:

$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);