4

応答にhttpHeaderを追加したい

私はこのコードを使うと思いました:

private void AddCustomHeader()
         {
             if (string.IsNullOrEmpty(HttpContext.Response.Headers.Get("Access-Control-Allow-Origin")))
             {
                 // Custom header
                 HttpContext.Response.AddHeader("Access-Control-Allow-Origin", "*");
             }
         }

ただし、VS_serverで実行すると、ローカルホストでは常に失敗します

This operation requires IIS integrated pipeline mode.

すでに存在するヘッダーを追加するとどうなりますか?

HttpContext.Response.AddHeader("name","value");
4

2 に答える 2

4

私は(コメントを要約すると)それを使用しようとすべきだと思います:

 HttpContext.Current.Response.Headers.Set("Access-Control-Allow-Origin", "*");

なので

  1. 対応するヘッダーの既存の値を置き換えます
  2. Response.AddHeader以前のバージョンとの互換性を維持するためだけにあります

発生する例外については、Webプロジェクトのプロパティを開こうとする必要があります。「Web」=>「ローカルIIS Webサーバーを使用する」をチェックします(「VS開発サーバーを使用する」の代わりに)。

構成によっては、[IISExpressを使用する]をオンにする必要がある場合があります

また、これはカスタムヘッダーの助けになるはずですhttps://stackoverflow.com/a/15043027/1236044

于 2013-02-26T08:40:13.977 に答える
-1

この操作については、IIS統合パイプラインモードエラーが必要です。

  1. IISマネージャーでアプリケーションプールを選択します
  2. 「基本設定...」をクリックします
  3. ダイアログの「管理パイプラインモード」で「統合」モードが選択されていることを確認します

ソース

2番目の質問(すでに存在するヘッダーを追加するとどうなるか)に関しては、同じ名前の別の値が追加されるだけです。

HttpContext.Response.AddHeader("name", "value1");
HttpContext.Response.AddHeader("name", "value2");

name名前と値を持つヘッダーが作成されますvalue1, value2(ASP.NET 4.5、IIS Expressで試してみましたが、これはそれほど重要ではないと思います)。

于 2013-02-25T10:28:17.067 に答える