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