這裡只是簡單做了一個字串,並沒有做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請求處理的一部分,後面還有很多處理,如果不結束傳回值不知道被處理成什麼了