2017-04-13 6 views
1

私はAngul 1.6.4アプリケーションをgulpとBrowser-syncで使用しています。 "gulp server"コマンドを使用してBrowser-syncをアップロードし、webapi 2.0 c#でポストリクエストを行う場合、リクエストはオプションとして送信されます。Angelsjs with browsersync postメソッドをオプションとして送信

エラー:プリフライトのため OPTIONS ... 405(許可されていないMETHOD)

のXMLHttpRequest connot負荷...レスポンスが無効なHTTPステータスコード405

ブラウザ同期

を持っています
browserSync.init({ 
     notify: false, 
     cors: true, 
     port: 6543, 
     server: { 
      baseDir: config.dir.src, 
      routes: { 
       "/bower_components": "bower_components" 
      }, 
      middleware: function(req, res, next) { 
       res.setHeader('Access-Control-Allow-Origin', '*'); 
       next(); 
      } 
     } 
    }); 

角度JSリクエスト

$http({ 
        method: 'POST', 
        url: 'http://localhost/Teste/TesteController/Cadastrar', 
        headers: { 
         'Content-Type': 'application/json', 
        }, 
        data: envelope 
       }).then(function (response) { 
         deferred.resolve(response); 
        }, function (error) { 
         deferred.reject(error); 
        }); 

WEBAPI

[HttpPost] 
    public IHttpActionResult Teste(Teste responsavel) 
    { 
     var saida = MontarSaida(_service.Cadastrar(responsavel, _serviceUsuario)); 
     return Ok(ResponseContent.Create("Ok", null, saida, 1)); 
    } 

解決:答えがたくさんあるStaskでweb.configファイル

<add name="Access-Control-Allow-Headers" value="Origin, X-Requested-With, Content-Type, Accept, Authorization" /> 

答えて

1

いくつかのブラウザ(具体的にはクローム)は通常の投稿を行う前にOPTIONSを呼び出す行うにしようとする上で、あなたのベースコントローラにCORSのための動作を指定する必要があります。 CORSヘッダーが整っていることを確認すること。

public void Options() { } 

はまた、OPTIONSメソッドが助けを感謝し、

<add name="Access-Control-Allow-Methods" value="GET, POST, OPTIONS, PUT, PATCH, DELETE" /> 
+0

S.Davを有効にする必要がありますが、私はこの問題を解決:あなたはOPTIONSがあなたのAPIコントローラに呼び出して処理していない場合、このエラーが発生する可能性がありますweb.configのエラー追加:

関連する問題