陋室铭
永远也不要停下学习的脚步(大道至简至易)

 这里只是简单做了一个字符串,并没有做xml的处理

 <script language="javascript">
  var xmlHttpRequest = null;
  function selectionChanged()
  {
   var url = "Default.aspx?index=" + document.getElementById("select").value;
   
   // IE only.
   xmlHttpRequest = new ActiveXObject("Msxml2.XMLHTTP");
   xmlHttpRequest.onreadystatechange = onReadyStateChange;
   xmlHttpRequest.open("GET", url, true);
   xmlHttpRequest.send(null);
  }
  
  function onReadyStateChange()
  {
   if (xmlHttpRequest.readyState == 4)
   {
    if (xmlHttpRequest.status == 200)
    {  
        var wwwww= document.getElementById("text");
     wwwww.innerHTML = xmlHttpRequest.responseText;
    }
   }
  }
    </script>

 

以前自己做ajax都是请求的.ashx页面  今天请求了一下aspx页发现一个问题

 

<%@ WebHandler Language="C#" Class="Handler" %>

using System;
using System.Web;
using System.Data;
using System.Web;
using System.Data.SqlClient;
public class Handler : IHttpHandler {
   
    public void ProcessRequest (HttpContext context) {
        context.Response.ContentType = "text/plain";
        context.Response.Write("Hello World");

        try
        {
            context.Response.Write("<text>" + " " + "</text>");
        }
        catch
        {
            context.Response.Write("没有记录");
        }
        context.Response.End();
    }
 
    public bool IsReusable {
        get {
            return false;
        }
    }
}

 当是.ashx页时context.Response.End();不用写也可以,因为ProcessRequest 它是一个完整的http请求处理,

不写End在方法结束后请求也结束了

当是.aspx页时

 

public partial class Ajax_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        Response.ContentType = "text/plain";
        Response.Write("Hello World");

        try
        {
            Response.Write("<text>" + " " + "</text>");
        }
        catch
        {
            Response.Write("没有记录");
        }
        Response.End();
    }
}

        Response.End();是必须写的,因为pageload只不过是http请求处理的一部分,后面还有很多处理,如果不结束返回值不知道被处理成什么了

posted on 2008-12-11 11:05  宏宇  阅读(521)  评论(0编辑  收藏  举报