2016-06-11 5 views
0

RESTfulなASP.NET Web APIからサービスを使用しているAngularJSで構築されたクライアントサイドアプリケーションがあります。ここまでは順調ですね。私はVisual Studio上で同じソリューションの下で両方を作成しました.APIはASP.NETプロジェクトであり、AngularJSはウェブサイトです。両方のプロジェクトはWindows権限を使用して作業する必要がありますので、プロジェクト作成者ウィザードでデフォルトのAAメカニズムとしてWindows権限を持つAPIを作成し、AngularJSではプロジェクトのプロパティタブでWindows認証を有効にしています。Angular ClientとASP.NET Web APIでCORSの問題

2つのアプリケーション間の通信をテストするために、私は単純なサービスを構築することに決めました。私はQuotationモデルクラスを作成し、それに対するコントローラを構築してから移行を追加し、データベースにいくつかの引用を追加しました。私は、私は、Web APIのCORSを有効にしなければならなかったことを実現し、この問題を勉強した後

enter image description here

:私は、唯一、このエラーを受け取るために、角のアプリケーションからのGETリクエストを送信しようとしました。そこで、NuGet Package Managerに行き、Microsoft.AspNet.Corsパッケージをプロジェクトに追加しました。

enter image description here

私は、このようなWebApiConfig.csでCORSを有効化:十分ではなかった

namespace Web_API 
{ 
    public static class WebApiConfig 
    { 
     public static void Register(HttpConfiguration config) 
     { 
      // Web API configuration and services 

      // Web API routes 
      config.MapHttpAttributeRoutes(); 

      config.EnableCors(); 

      config.Routes.MapHttpRoute(
       name: "DefaultApi", 
       routeTemplate: "api/{controller}/{id}", 
       defaults: new { id = RouteParameter.Optional } 
      ); 
     } 
    } 
} 

そして私はちょうどクラスの場合には、私のコントローラクラスとメソッド(にヘッダを追加しました):

namespace Web_API.Controllers 
{ 
    [EnableCors("*", "*","*")] 
    public class QuotationsController : ApiController 
    { 
     private Web_APIContext db = new Web_APIContext(); 

     // GET: api/Quotations 
     [EnableCors("*", "*", "*")] 
     public IQueryable<Quotation> GetQuotations() 
     { 
      return db.Quotations; 
     } 

しかし、私はAngularJSアプリケーションからリクエストを受け取ると、同じエラーが表示されます。誰もこの問題を解決する方法を知っていますか?

+0

問題はCORSに関連していません。サーバーが500エラーを返すとき、CORSヘッダーは含まれていないため、CORSエラーが発生します。私は問題の下で読んでいるので、あなたはこの質問を閉じる必要がありますので、窓の認証です –

答えて

1

あなたはこれを試してみてくださいすることができます

[EnableCors(origins: "*", headers: "*", methods: "*")] 

はまた、あなたの方法でEnableCorsを使用しないでください。あなたのコントローラでこれを使用したので、デフォルトではすべてのメソッドがこのルールに該当します。

これがあなたの問題を解決することを願っています。ありがとう。

+0

私はそれを試してみましたが、それは動作しませんでした。 –

+0

私は問題を発見しました。私はWindows認証なしで別のAPIを作成し、それは働いた。どうすればWindows認証で動作させることができますか? –

関連する問題