2

ページがどのサーバーから提供されたかを調べる方法を考えていました。処理されたサーバーの IP またはサーバー名を持つ隠し変数をページに配置するなどの方法で行います。しかし、asp.net ajax リクエスト (部分的なポストバックとして発生するもの) に対してはどうすればよいでしょうか? 非表示の変数を更新パネルに配置する必要がありますが、ページに多くの更新パネルがある場合はどうなりますか?

別のSO投稿をチェックアウトしましたが、解決策はiis 7用でした.iis6に相当するものは何ですか? そして、ヘッダーをどのように読むことができますか? どこを見る?

4

1 に答える 1

6

サイトのプロパティを開き、[HTTPヘッダー]タブをクリックすると、IISMMCを介してIIS6カスタムヘッダーを設定できます。

ここに画像の説明を入力してください

adsutil(にある)を使用することもできますc:\InetPub\AdminScripts

cscript adsutil set w3svc / 1 / root / HttpCustomHeaders "X-Served-By:Server-001"

上記のコマンドは、デフォルトのWebサイトのHTTPヘッダーを構成します。

使用するときは注意してくださいadsutil。これにより、すでに構成されている既存のヘッダーが上書きされます。

複数のヘッダーを設定するには、次のようにします。

cscript adsutil set w3svc / 1 / root / HttpCustomHeaders "X-Served-By:Server-001" "X-Powered-By:ASP.NET"

アップデート:

クライアントの応答ヘッダーへのアクセスに関して、ASP.NET AJAX更新パネルを使用している場合は、次のスクリプトをページの最後に追加します。

<script type="text/javascript" language="javascript">
  Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endPageRequest);

  function endPageRequest(sender, args) {

    var allHeaders = args._response._xmlHttpRequest.getAllResponseHeaders();
    var headers = allHeaders.split('\n');

    // At this point you have a string array of response headers.

    // Or you can get an individual header:
    var header = args._response._xmlHttpRequest.getResponseHeader("MyHeader");

  }
</script>

これにより、ページリクエストマネージャーにフックされ、Ajaxリクエストが完了すると、レスポンスヘッダーのコピーを持つ基になるXMLHttpRequestオブジェクトも表示されます。

jQueryで同様のことができます。

$.ajax({
  url: "/Home/HeadTest",
  success: function (data, textStatus, xhr) {
    var header = xhr.getResponseHeader("MyHeader");                 
  }
});
于 2011-06-26T12:47:16.337 に答える