2017-02-24 7 views
1

私は今このエラーが発生していますが、Angular(1.6.1)アプリで作業しています。 symfony 3で書かれています)。 私はpostメソッドでプリフライトエラーが発生しました。これはリクエストのヘッダーを変更して解決することができました。CORSプリフライトチャンネルがDELETEメソッドで成功しませんでした

class CorsListener { 
    public function onKernelResponse(FilterResponseEvent $event) 
     $response = $event - > getResponse(); 
     $responseHeaders = $response - > headers; 
     $responseHeaders - > set('Access-Control-Allow-Headers', 'origin, content-type, accept, X-Requested-With '); 
     $responseHeaders - > set('Access-Control-Allow-Origin', '*'); 
     $responseHeaders - > set('Access-Control-Allow-Credentials', 'true'); 
     $responseHeaders - > set('Access-Control-Allow-Methods', 'POST, GET, PUT, DELETE, PATCH, OPTIONS'); 
     $event - > setResponse($response); 
    } 
} 

の.htaccessライン役に立つことができます:

<ifModule mod_headers.c> 
Header always set Access-Control-Allow-Origin: "*" 
Header always set Access-Control-Allow-Headers "origin, x-requested-with, content-type, Access-Control-Allow-Origin" 
Header always set Access-Control-Allow-Methods "POST, GET, PUT, DELETE, OPTIONS" 

APIからCorsListenerがあり

$http.delete('http://localhost:8000/utilisateurs/2').then(function(response) { 
    $location.path('/register'); 
}) 

は今ここにAPIへの私の呼び出しです

リクエストはOPTIONとして送信され、この動作は次のように変更できません:https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS

mod_headersは本当に私のApacheのconf内でアクティブになっています。私は実際に何をすべきか分かりません。

答えて

0

さてさて、私はNelmioCorsBundleでそれを修正するために管理し、ここでの設定を支援することです:

nelmio_cors: 
paths: 
    '^/': 
     allow_credentials: true 
     allow_origin: ['*'] 
     allow_headers: ['X-Requested-With', 'X-Prototype-Version', 'Cache-Control', 'Pragma', 'Origin', 'Content-Type', 'Accept'] 
     allow_methods: ['POST', 'PUT', 'GET', 'DELETE', 'PATCH', 'OPTIONS'] 
     expose_headers: ['Access-Control-Allow-Origin'] 
     max_age: 3600 
関連する問題