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