2016-08-01 8 views
1

プリフライトリクエストで認証エラーにコードを使用する必要がありますか?認証エラーの場合のCORSとプリフライト(OPTIONS)の応答コード

私は意味、私は2つの異なる不正なエラーを持つことができます。

  • ユーザーは、(OPTIONSメソッドが処理されるプリフライトを実行することはできません - 私は、私は405を使用してはならないと思う - しかし、ユーザーが求めるために許可されていませんOPTIONSのため)
  • ユーザーがアクセス制御リクエスト・メソッドで指定された要求されたメソッド()

答えて

0

を呼び出すための権限を持っていない私は私があったように405エラーや500エラーを見せていた同様の設定を持っていました私のWebサービスでCORSを実行しようとしています。リクエストが飛行前のOPTIONSメソッドであった場合、私の修正では基本的にresponse.End()コールが必要でした。 OPTIONSが許可された呼び出しのリストに含まれていれば、CORSのドキュメントにあるweb.config Webハンドラは問題ありませんでした。顧客のハンドラをコードに移動する必要はありませんでした。

private void ApplicationOnBeginRequest(object sender, EventArgs eventArgs) 
    { 
... 
      if (context.Request.HttpMethod == "OPTIONS") 
       response.End(); 
     } 

と私のweb.configファイルでこれらのハンドラ:

<system.webServer> 
    <!--Other handlers/modules ...--> 
    <httpProtocol> 
     <customHeaders> 
      <clear /> 
      <add name="Access-Control-Allow-Origin" value="*" /> 
      <add name="Access-Control-Allow-Credentials" value="true" /> 
      <add name="Access-Control-Allow-Headers" value="Content-Type,Accept" /> 
      <add name="Access-Control-Allow-Methods" value="GET,POST,PUT,DELETE,OPTIONS" /> 
     </customHeaders> 
    </httpProtocol> 
    </system.webServer> 

基本的に、私の修正/セットアップは私のApplicationOnBeginRequestハンドラでこのONE MAJOR FIXを含み

関連する問題