2013-11-22 14 views
6

スリムフレームワークで書かれたREST APIを使用しようとしています。

&投稿方法は問題なく動作します。しかし、DELETE要求は機能しません。私は "メソッドを削除アクセス制御許可メソッドでは許可されていません"

私はすでにヘッダーにOPTIONSとDELETEを許可しています。以下のコードを参照してください。

header('Access-Control-Allow-Origin: *'); 
header('Access-Control-Allow-Headers: Content-Type'); 
header('Access-Control-Allow-Methods: GET, PUT, POST, DELETE, OPTIONS'); 

$app->options('/(:name+)', function() use($app) {     
    $response = $app->response(); 
    $app->response()->status(200); 
    $response->header('Access-Control-Allow-Origin', '*'); 
    $response->header('Access-Control-Allow-Headers', 'Content-Type, X-Requested-With, X-authentication, X-client'); 
    $response->header('Access-Control-Allow-Methods', 'GET, POST, PUT, DELETE, OPTIONS'); 
}); 

このリクエストに失敗した原因は何ですか?

答えて

5

Nginx(1.0.x)の現在のバージョンは、HTTP OPTIONS要求をサポートしていないようです。この要求が送信されるたびに、「Method Not Allowed」が返されます。私は問題を解決したnginxサーバーの設定ファイルにヘッダを追加しました。

location/{ 
     alias /usr/share/nginx/webapp/; 
     try_files $uri $uri/ /index.php; 
     if ($request_method = 'OPTIONS') { 
      add_header 'Access-Control-Allow-Origin' '*'; 
      add_header 'Access-Control-Allow-Headers' 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type'; 
      add_header 'Access-Control-Allow-Methods' "GET, POST, OPTIONS, DELETE"; 
      add_header 'Access-Control-Max-Age' 1728000; 
     return 200; 
    } 

    } 

-

関連する問題