2016-02-26 50 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); 
相關問題