function getXMLHttpRequest()
{
if(window.XMLHttpRequest)
{
return new window.XMLHttpRequest();
}
else
{
var progIDs = ['Msxml2.XMLHTTP','Microsoft.XMLHTTP'];
for(var i = 0; i < progIDs.length; i++)
{
try
{
var xmlHttp = new ActiveXObject(progIDs[i]);
return xmlHttp;
}
catch (ex) {}
}
return null;
}
}
function sendRequest(action)
{
var xhr = getXMLHttpRequest();
xhr.open("POST","XMLHttpResponse.aspx?act="+action)
if (action == "string")
{
xhr.onreadystatechange = function()
{
getString.apply(xhr);
}
}
else if (action == "xml")
{
xhr.onreadystatechange = function()
{
getXml.apply(xhr);
}
}
else if (action == "json")
{
xhr.onreadystatechange = function()
{
getJson.apply(xhr);
}
}
xhr.send(null);
}
protected void Page_Load(object sender, EventArgs e)
{
if (this.Request.QueryString["act"] != null && this.Request.QueryString["act"].ToString().Trim().Length > 0)
{
string action = this.Request.QueryString["act"].ToString().Trim();
if (action == "string")
{
this.ResponseString(); //返回文本字符串
}
else if (action == "xml")
{
this.ResponseXML(); //返回xml文本
}
else if (action == "json")
{
this.ResponseJSON(); //返回json字符串
}
}
}
protected void ResponseString()
{
Response.Write("Return a string from server.");
Response.End();
}
function getString()
{
if (this.readyState == 4)
{
if(this.status == 200)
{
var strtest = this.responseText;
var showDIV = document.getElementById("showHTML");
showDIV.innerHTML = "
showDIV.style.background = "#EE6600";
}
else
{
throw new Error();
}
}
}
protected void ResponseXML()
{
StringWriter sw = new StringWriter();
XmlTextWriter xtw = new XmlTextWriter(sw);
xtw.WriteStartDocument();
xtw.WriteStartElement("Person");
//Name节点
xtw.WriteStartElement("Name");
xtw.WriteString("Candle");
xtw.WriteEndElement();
//Age节点
xtw.WriteStartElement("Age");
xtw.WriteString("254");
xtw.WriteEndElement();
//Job节点
xtw.WriteStartElement("Job");
xtw.WriteString("Software Engineer");
xtw.WriteEndElement();
xtw.WriteEndElement();
xtw.WriteEndDocument();
string xmlstr = sw.ToString().Replace("utf-8", "gb2312").Replace("utf-16", "gb2312");
Response.ContentType = "text/xml";
Response.Charset = "GB2312";
Response.Write(xmlstr);
Response.End();
}
protected void ResponseXML()
{
string xmlstr = @"
";
Response.ContentType = "text/xml";
Response.Charset = "GB2312";
Response.Write(xmlstr);
Response.End();
}
function getOs()
{
var OsObject = "";
if(navigator.userAgent.indexOf("MSIE")>0)
{
return "MSIE";
}
if(isFirefox=navigator.userAgent.indexOf("Firefox")>0)
{
return "Firefox";
}
if(isSafari=navigator.userAgent.indexOf("Safari")>0)
{
return "Safari";
}
if(isCamino=navigator.userAgent.indexOf("Camino")>0)
{
return "Camino";
}
if(isMozilla=navigator.userAgent.indexOf("Gecko/")>0)
{
return "Gecko";
}
}
function getXml()
{
var osObject = getOs();
var strHTML = "";
var xmlDoc = null;
var Firstname = "";
var Lastname = "";
var Age = "";
var Job = "";
var Salary = "";
if (this.readyState == 4)
{
if(this.status == 200)
{
var xmlDoc = this.responseXML;
var xmlPersons = xmlDoc.getElementsByTagName("Person");
for(var i = 0 ; i<xmlPersons.length; i++)
{
var person = xmlPersons[i];
if (osObject == "MSIE")
{
Firstname = person.getElementsByTagName("Firstname")[0].text;
Lastname = person.getElementsByTagName("Lastname")[0].text;
Age = person.getElementsByTagName("Age")[0].text;
Job = person.getElementsByTagName("Job")[0].text;
Salary = person.getElementsByTagName("Salary")[0].text;
}
else
{
Firstname = person.getElementsByTagName("Firstname")[0].textContent;
Lastname = person.getElementsByTagName("Lastname")[0].textContent;
Age = person.getElementsByTagName("Age")[0].textContent;
Job = person.getElementsByTagName("Job")[0].textContent;
Salary = person.getElementsByTagName("Salary")[0].textContent;
}
strHTML += "
strHTML += "" + Firstname + Lastname + "";
strHTML += "" + Age + "";
strHTML += "" + Job + "";
strHTML += "" + Salary + "";
strHTML += "";
}
var showDIV = document.getElementById("showHTML");
showDIV.innerHTML = strHTML;
showDIV.style.background = "#CCCCCC";
}
else
{
throw new Error();
}
}
}
protected void ResponseJSON()
{
//StringBuilder sb = new StringBuilder();
//sb.Append("{\"persons\":[");
//sb.Append("{\"Firstname\":\"Candle\",\"Lastname\":\"Zhu\",\"Age\":25,\"Job\":\"Software Engineer\",\"Salary\":10000},");
//sb.Append("{\"Firstname\":\"Kevin\",\"Lastname\":\"Zhu\",\"Age\":25,\"Job\":\"UI Designer\",\"Salary\":10000}");
//sb.Append("]}");
string jsonStr = @"{'persons':[
{'Firstname':'Candle','Lastname':'Zhu','Age':25,'Job':'Software Engineer','Salary':10000},
{'Firstname':'Kevin','Lastname':'Zhu','Age':25,'Job':'UI Designer','Salary':10000}
]}";
Response.Write(jsonStr);
Response.End();
}
function getJson()
{
var strHTML = "";
var Firstname = "";
var Lastname = "";
var Age = "";
var Job = "";
var Salary = "";
if (this.readyState == 4)
{
if(this.status == 200)
{
var jsonStr = this.responseText;
var json = eval("("+jsonStr+")");
for (var i=0 ; i < json.persons.length; i++)
{
Firstname = json.persons[i].Firstname;
Lastname = json.persons[i].Lastname;
Age = json.persons[i].Age;
Job = json.persons[i].Job;
Salary = json.persons[i].Salary;
strHTML += "
strHTML += "" + Firstname + Lastname + "";
strHTML += "" + Age + "";
strHTML += "" + Job + "";
strHTML += "" + Salary + "";
strHTML += "";
}
var showDIV = document.getElementById("showHTML");
showDIV.innerHTML = strHTML;
showDIV.style.background = "#00ff00";
}
else
{
throw new Error();
}
}
}来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/12639172/viewspace-611747/ ,如需转载,请注明出处,否则将追究法律责任。