问题描述
|
我在想如何找到该页面是从哪个服务器提供服务的:我可以这样做,例如在页面上放置一个隐藏变量,该变量具有要处理的服务器的IP或服务器名称。但是,我如何处理asp.net ajax请求:那些发生为部分回发的请求?我必须将隐藏的变量放在更新面板中,但是如果页面中有很多更新面板怎么办?
我签出了另一个SO帖子,但是解决方案是针对iis 7的。iis6等效于什么?我们如何读取标题?在哪里看?
解决方法
您可以通过打开站点的属性,然后单击“ HTTP标头”选项卡,通过IIS MMC设置IIS6自定义标头:
您还可以使用
adsutil
(位于c:\\InetPub\\AdminScripts
中):
cscript adsutil设置w3svc / 1 / root / HttpCustomHeaders \“ X-Served-By:Server-001 \”
上面的命令将为默认网站配置HTTP标头。
使用“ 0”时要小心,因为这将覆盖任何已配置的现有标头。
要设置多个标题,请执行以下操作:
cscript adsutil设置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\");
}
});