这里只是简单做了一个字符串,并没有做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请求处理的一部分,后面还有很多处理,如果不结束返回值不知道被处理成什么了