2017-06-21 10 views
0

http DELETEを実装しようとしています。アプリはphpとslim3フレームワークで書かれています。フロントエンドは角度が2です。Slim 3 Http削除メソッドが動作しない

パターンが$slimApp->delete('/delete', ...)の場合はすべて正常です。 $slimApp->delete('/delete/{id}', ...)私は次のエラーを取得する:

Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

私はすでにドキュメントhttps://www.slimframework.com/docs/cookbook/enable-cors.htmlが、しかし、私はそれが仕事を得ることができないを読むとすぐに私のようなのparamsを紹介して

。ここで

は私のミドルウェアです:

<?php 

class MyMiddleware { 

    public function __invoke(Request $req, Response $res, $next) { 
     $res->withHeader('Access-Control-Allow-Origin', 'http://localhost:8100') 
      ->withHeader('Access-Control-Allow-Credentials', 'true') 
      ->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Origin, Authorization') 
      ->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); 

     return $next($req, $res); 
    } 

} 

$app = new \Slim\App([ 
    "settings" => [ 
     "determineRouteBeforeAppMiddleware" => true 
    ] 
]); 

$app->add(new MyMiddleware()); 

問題何ができるか任意のアイデア?

+0

このルートのコールバックを表示できますか? –

答えて

0

OK解決済み。 .htaccessはリクエストがコードに「到達」しないようにしました。だから私はルールを最適化する必要がありました。

1

応答は不変です。変数を再割り当てしてください。

public function __invoke(Request $req, Response $res, $next) { 
    $res = $res->withHeader('Access-Control-Allow-Origin', 'http://localhost:8100') 
     ->withHeader('Access-Control-Allow-Credentials', 'true') 
     ->withHeader('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Accept, Origin, Authorization') 
     ->withHeader('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); 

    return $next($req, $res); 
} 
+0

まだ動作していません...覚えておいてください:URLにパラメータがなければ動作しています。 – user3481997

関連する問題