//所谓Ajax技术实际上就是浏览器的成异步传输技术
//声明XMLHttpRequest对象
//XMLHttpRequest对象是用来完成异步传输模式的核心对象
var
xmlHttp
function createXMLHttpRequest()
{
var
xp;
try
{
//不同的浏览器所创建的XMLHttpRequest对象,和创建方式不尽相同
//这里使用异常处理的方式来获得正确的XMLHttpRequest对象创建
//
Firefox, Opera 8.0+, Safari
xp=new XMLHttpRequest();
}
catch
(e)
{
// Internet
Explorer浏览器的XMLHttpRequest对象的创建
//Msxml2.XMLHTTP和
Microsoft.XMLHTTP是针对ie的不同版本,ie6以后统一是Msxml2.XMLHTTP
try
{
xp=new
ActiveXObject("Msxml2.XMLHTTP");
}
catch (e)
{
try
{
xp=new
ActiveXObject("Microsoft.XMLHTTP");
}
catch
(e)
{
xp=null;
}
}
}
return xp;
}
//初始化并执行异步,参数url是异步所请求的页面
function runMethod(executeBacked,url,asyn)
{ asyn = (asyn === undefined)? true: asyn;
xmlHttp=createXMLHttpRequest();
//指定异步对象的回调函数
xmlHttp.onreadystatechange=function(){
backMethod(executeBacked); }
//确定发送请求方式,URL,及是否同步执行下段代码
//固定写法
xmlHttp.open("GET",url,asyn);
//执行异步,固定写法
xmlHttp.send(null);
}
//初始化并执行异步,参数url是异步所请求的页面
function
PostRunMethod(executeBacked,parameter,url,asyn)
//请求成功后执行函数,post传递的值,请求路径,s是否异步 默认为是!
{
xmlHttp=createXMLHttpRequest();
//指定异步对象的回调函数
asyn = (asyn ===
undefined)? true: asyn; //当没有第一是否异步的时候默认为异步
//xmlHttp.onreadystatechange=backMethod;
xmlHttp.onreadystatechange=function(){
backMethod(executeBacked); };
//确定发送请求方式,URL,及是否同步执行下段代码
xmlHttp.open("post",url,asyn);
//执行异步
//
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.setRequestHeader("Content-Tpye","application/x-www-form-urlencoded");
//post需要设置头文件!
xmlHttp.send(parameter);
}
//回调函数,即异步返回后执行的代码,由用户编写
function backMethod(executeBacked)
//函数返回true 或者 false 判断是否成功执行
{
var v;
if(xmlHttp.readyState==4)
//判断对象状态
{
if(xmlHttp.status==200) //信息已成功返回,开始处理信息
{
v=xmlHttp.responseText; //获得服务器Response返回的字符流
executeBacked(v)
//执行请求结果正确后的函数!
}
else //信息返回不正常
{
//alert("信息反回异常!");
executeBacked(false)
}
}
}
浙公网安备 33010602011771号