2016-09-14 13 views
2

非常に奇妙なエラーが発生しました。CORS同じコントローラーを発行します.1つの方法は問題ありません。もう1つはありません。

私は、角度js http getイベントによって呼び出される2つのコントローラ内のメソッドを持っています。

最初のものはうまく動作し、2番目のものはCORSエラーが発生していますが、どちらも同じコントローラにあるため、どうすれば可能ですか。

この

は私が取得していますエラーです: enter image description here

これらは私がangularjsでやっているコールです:

$http({ 
     url: 'http://localhost:52876/api/Admin/GetLoanInfo', 
     method: "GET", 
     params: { loanID: querystringParam } 
    }).success(function (data, status) { 
     console.log(data); 
     $scope.LoanDetailsVM.LoanStatus = data.LoanStatus; 
    }).error(function (data, status) { 
     console.log(data); 
    }); 

    $http({ 
     url: 'http://localhost:52876/api/Admin/GetLoanCovenants', 
     method: "GET", 
     params: { loanID: querystringParam } 
    }).success(function (data, status) { 
     console.log(data); 
    }).error(function (data, status) { 
     console.log(data); 
    }); 

とコントローラ方法:私は「

[HttpGet] 
[Route("api/Admin/GetLoanInfo")] 
public async Task<IHttpActionResult> GetLoanInfo(int loanID) 
{ 

     LoanApplication newApplication = null; 
     newApplication = db.LoanApplications.FirstOrDefault(s => s.LoanId == loanID); 
     return Ok(newApplication); 
} 


[HttpGet] 
[Route("api/Admin/GetLoanCovenants")] 
public async Task<IHttpActionResult> GetLoanCovenants(int loanID) 
{ 
     LoanCovenant newCovenant = null; 
     newCovenant = db.LoanCovenants.FirstOrDefault(s => s.LoanID == loanID); 
     return Ok(newCovenant); 
} 

私は両方の方法でヒットすることができますが、私は両方の方法でブレークポイントを持っていますが、なぜ最初のものでCORSについて不平を言っているのか分かりません。 WebブラウザからのCORSを使用して

enter image description here

+1

ブラウザで直接URLを開くと機能しますか? – charlietfl

+0

生のhttpリクエストと応答を完全に受け取っていますか? CORSはバックエンドで何とか許可されていますか?ブラウザのキャッシュをクリアしましたか? – Oscar

+0

私はこの質問に問題がありました。なぜCORSについて不平を言っていたのかわかりません。 @charlietfiブラウザのURLを確認するのに役立つヒント – Laziale

答えて

1

呼び出す方法は、Web APIをOPTIONS要求(例えば、at the end of this article)で最初に呼び出されます。

このようにして、ブラウザは、要求されたAPIを呼び出すことができる場合、を認識します。

エンドポイントへのコールがクラッシュしているようです。つまり、HTTP 500エラーにはCORSヘッダーが含まれていません。

これは、WebブラウザがCORS HTTPヘッダーに苦労している理由:Reason: CORS Header 'Access-Control-Allow-Origin' missingを説明しています。

あなたの方法を修正したら、HTTP OPTIONSはokとなり、CORSエラーは消えてしまいます。

関連する問題