<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="demo1.aspx.cs" Inherits="ajax.demo1" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><head runat="server"> <title></title> <script language="javascript" type="text/javascript"> /*兼容方式*/ var makeXHR = function () { //声明异步对象变量 var xmlHttp = false; var xmlHttpObj = ["MSXML2.XMLHttp.5.0", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp"]; //判断浏览器是否支持XMLHttpRequest,如果支持,则是新式浏览器,可以直接创建 if (window.XMLHttpRequest) { xmlHttp = new XMLHttpRequest(); } //否则,只能循环遍历老式浏览器异步对象名,一一尝试创建,直到创建成功为止 else if (window.ActiveObject) { for (var i = 0; i < xmlHttpObj.length; i++) { xmlHttp = new ActiveXObject(xmlHttpObj[i]); if (xmlHttp) { break; } } } //判断异步对象是否创建成功,如果成功,则返回异步对象,否则返回false return xmlHttp ? xmlHttp : false; } window.onload = function () { document.getElementById("btnGetTime").onclick = function () {//创建异步对象
var xhr = makeXHR(); //设置参数 xhr.open("get", "GetTime.ashx?name=xuj", true); //true表示异步,false表示同步 //get请求默认会使用浏览器的缓存,post不会使用,下面让get请求不从浏览器获取缓存数据 xhr.setRequestHeader("If-Modified-Since", "0"); //设置回调函数 xhr.onreadystatechange = function () { //当完全接收完响应报文后,并相应状态码味200的时候 if (xhr.readyState == 4 && xhr.status == 200) { //获取相应报文体 var res = xhr.responseText; alert(res); } }; //发送异步请求 xhr.send(null); };
document.getElementById("btnPostTime").onclick = function () {
//创建异步对象 var xhr = makeXHR(); //设置参数 xhr.open("post", "GetTime.ashx", true); //true表示异步,false表示同步 //设置请求报文体的编码格式 xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded"); //设置回调函数 xhr.onreadystatechange = function () { //当完全接收完响应报文后,并相应状态码味200的时候 if (xhr.readyState == 4 && xhr.status == 200) { //获取相应报文体 var res = xhr.responseText;//如返回的格式是json格式,[{"id":1,"name":"1班"},{"id":2,"name":"2班"}]
//将数据转成js数组 //方式一:var resJson = eval(res); //方式二 var resJson = JSON.parse(res); for (var i = 0; i < resJson.length; i++) { alert(resJson[i].name); } //alert(resJson.length); } }; //发送异步请求,key=value&key1=value2 xhr.send("name=xuj"); }; }; </script></head><body> <input type="button" id="btnGetTime" value="get获取服务器时间" /> <input type="button" id="btnPostTime" value="post获取服务器时间" /></body></html>