2017-01-05 11 views
1

私はAngular 2の初心者です。Angular CLIを使用してAngularプロジェクトを作成しています。別にasp.net MVC Web APIプロジェクトを作成しています。私はlocalhost:65320/api/myservice、十字架からデータをダウンロードする要求を取得する角度のhttp を使用する場合localhost:65320 Asp.net MVC5 Angular 2の設定

localhost:4200

  • MVCのWeb APIは、このサービスを開始します。このサービスを開始ng serveコマンドに対する角度CLIを使用した

    • 起源の問題が発生しました。さまざまなURLを使用している角度のあるプロジェクトです。しかし、私はAccess-Control-Allow-Origin=*にヘッダを追加して問題を解決しています。

      しかし、私は、HTTPを使用する場合ポスト要求常に405 method not allowed問題を返す発生

      質問:

      • がどのようにWeb APIをコントローラ内のクロスオリジンポスト要求を許可するには?
      • Angular CLIで作成したプロジェクトの作業をMVCプロジェクトと一緒に設定する方法は?

      正解:

      のWeb APIのクロスオリジンの問題は、この記事の次のように解決: https://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api#enable-corsは、次の2つの異なる方法でWeb APIでCORSを有効にすることができ@chandermani

  • +1

    あなたは、このMSDNの記事https://www.asp.net/web-api見てきました/ overview/security/enabling-origin-cross-origin-in-web-api – Chandermani

    +0

    @Chandermani no。私は見るでしょう。 tnx – ebattulga

    +0

    @Chandermaniありがとうございます。あなたのリンクは私のCross Originの要求 'POST'問題を解決します。 – ebattulga

    答えて

    0

    によって示唆:

    1. Microsoft.AspNet.WebApi.Corsを使用する:チュートリアルhttps://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-apiに従ってください。Chandermaniが指摘されています。
    2. あなたのweb.configファイルで、あなたのsystem.webServer要素に以下を追加します。

      <httpProtocol> <customHeaders> <add name="Access-Control-Allow-Origin" value="*" /> <add name="Access-Control-Allow-Headers" value="Content-Type" /> <add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" /> </customHeaders> </httpProtocol>

    +0

    私はあなたの選択肢2を試みています。しかし、POST要求は常に '405メソッドは許されません 'を返します。今、私は 'Microsoft.AspNet.WebApi.Cors'ライブラリを使って問題を解決しています – ebattulga

    +1

    [CORS仕様](https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS)のいくつかのシナリオでは、クライアントはOPTIONSメソッドを使用してサーバーにプリフライトされたリクエストを送信します。これはおそらく実装していないため、405メソッドは許可されません。これはMicrosoft.AspNet.WebApi.Corsによって自動的に実装されますが、古いバージョンのMVCでは使用できませんでした。 –

    関連する問題