2016-07-29 9 views
0

私はSymfony FOSRestBundleでRESTサービスを作成しました。それはGET要求で正常に動作します。FOSRest OPTIONSリクエストリターン405メソッドが使用できない

Emberは "モデル"でアクセスしようとしていますが、エラーメッセージが表示されます。実際には、OPTIONSリクエスト(プリフライト)でEmberがアクセスしようとしましたが、«RequestヘッダーフィールドAccess-Control-Allow-プリフライトレスポンス»にアクセス制御 - 許可 - ヘッダによって許可されていない 私は郵便配達してRESTサービスにアクセスしようと、私はこのエラーを得た:OPTIONS http://myUrl.local/groupsと :「405メソッド

»許可されていませんが、それは動作します私が電話するといいです。オプションhttp://myUrl.local/

私はエルキャピタン(IMac)でApacheを使用しています。 これらの行を/private/etc/apache2/extra/httpd-default.confに追加しようとしました。 ヘッダーadd Access-Control-Allow-Origin "*" Header add Access-Control-Allow-Headers " 「タイプ」 ヘッダーアクセス制御許可メソッド「PUT、GET、POST、DELETE、OPTIONS」

これらの行をVirtualHostに追加しようとしました。 どちらの場合も同じ結果が得られます。

SymfonyまたはFOSrestBundleの問題ですか?

私は何が起こっているのか理解するのに助けが必要です。どのように私の問題を解決することができます。

答えて

0

EmberアプリケーションがSymfonyアプリケーションと同じドメインでホストされていないと仮定します。これは、お使いの携帯電話のアプリである可能性がありますか?これにより、要求はCORSプロトコル(クロスオリジンリソース共有)に準拠します。

設定が必要なヘッダーを正しく識別しました。このアクションは、メソッドのGETを必要とする他の方法のFOSRestBundleブロック要求とステータスコード405を返したようあなたが

<?php 

namespace AppBundle\Controller; 

class GroupsController 
{ 
    public function getGroupsAction() 
    {} // "get_users"   [GET] /users 
} 

:それは動作しない理由は、これと同様の作用に/groupsは、おそらく路線ということです取得。それはまた、/へのOPTIONS要求がうまく働く理由です - あなたのサーバーがそれをブロックしているわけではありません、それはFOSRestBundleです。

NelmioCorsBundleを使用すると、プリフライトを正しく処理できます。バンドル

  • を要求CORSプリフライトオプションを処理し、あなたの応答にCORSヘッダを追加します

参照用issue #587を参照してください。

関連する問題