Response.End

在写一个AJAX小实例的时候,发现一个奇怪的问题:

TimeTest
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>时间显示</title>
</head>
<body>
<script type="text/javascript">
function ajaxFunction()
 {
 
var xmlHttp;
 
if (window.XMLHttpRequest)
  {
// code for all new browsers
  xmlHttp=new XMLHttpRequest();
  }
else if (window.ActiveXObject)
  {
// code for IE5 and IE6
  xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
if(xmlHttp!=null)
{    
    xmlHttp.onreadystatechange
=function()
      {
      
if(xmlHttp.readyState==4)
        {
         document.myForm.time.value
=xmlHttp.responseText;
        }
      }
    xmlHttp.open(
"GET","Test.aspx",true);
    xmlHttp.send(
null);
    }    
 }
</script>
<form name="myForm">
用户: 
<input type="text" name="username" onkeyup="ajaxFunction();" />
时间: <input type="text" name="time" />
</form>
</body>
</html>

Test.aspx的c#代码为:

        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Expires 
= -1;
            Response.Write(DateTime.Now.ToString()); 
//输出当前时间
        }

通过xmlHttp.responseText返回的时间却是:当前时间和Test.aspx页面的HTML代码。

有人说,要清除Test.aspx页面上的所有HTML代码,这样返回的确实只有当前时间了。

偶然发现,在Response.Write后面加一句:Response.End(); 就能避免返回Test.aspx页面的HTML代码了,而无需清除页面的HTML。

        protected void Page_Load(object sender, EventArgs e)
        {
            Response.Expires 
= -1;
            Response.Write(DateTime.Now.ToString()); 
//输出当前时间
            Response.End();
        }

Response.End() 使 Web 服务器停止处理脚本并返回当前结果。文件中剩余的内容将不被处理

原文地址:https://www.cnblogs.com/niuniu1985/p/1807074.html