
Code
// JScript File
function ajaxGet(url,SuccessBack,ErrorBack)
{
var isPost=false;
var parameters="";
ajax(url,isPost,parameters,SuccessBack,ErrorBack);
}
function ajaxPost(url,parameters,SuccessBack,ErrorBack)
{
var isPost=true;
ajax(url,isPost,parameters,SuccessBack,ErrorBack);
}
function ajax(url,isPost,parameters,SuccessBack,ErrorBack)
{
//根据不同的浏览器创建XMLHttpRequest
var xmlHttp= CreateXMLHttp();
if(isPost==false)
{ //true 异步,false 同步
xmlHttp.open("GET",url,true);
}
else
{
xmlHttp.open("POST",url,true);
//xmlHttp.setrequestheader("content-length",parameters.length);
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
//xmlhttp.setRequestHeader("Content-Type", "text/xml"); //如果发送的是一个xml文件
}
xmlHttp.onreadystatechange=function(){
//判断是否是完成状态
if(xmlHttp.readystate==4)
{
//判断是否执行成功
if(xmlHttp.status==200)
{
SuccessBack(xmlHttp.responseText);
}
else if(xmlHttp.status==404)
{
ErrorBack("Request URL does not exist");
}
else
{
ErrorBack("Error: status code is " + request.status);
}
}
}
if(parameters=="")
{
xmlHttp.send(null);
}
else
{
xmlHttp.send(parameters);
}
}//ajax
//CreateXMLHttp
function CreateXMLHttp()
{
var xmlHttp=false;
try
{
//Microsoft IE
if(window.ActiveXObject)
{
return new ActiveXObject("Microsoft.XMLHTTP");
}
//Mozilla、Firefox、Safari、Opera
else if(window.XMLHttpRequest)
{
return new XMLHttpRequest();
}
else
{
//old ie
return new ActiveXObject("Msxml2.XMLHTTP");
}
}
catch()
{
xmlHttp=false;
}
if(!xmlhttp)
{
alert("Error initializing XMLHttpRequest!");
}
}
此框架使用方法:
我们平时都常用的就是Get和Post两个功能,下面就举两个例子就说明这两种方法的应用。
假设此代码的文件名为:ajax.js,后台的处理程序文件名为ajax.aspx (其它语言的程序道理也一样)
在要用Ajax功能的页面上写:
<script type="text/javascript" src="/js/ajax.js"></script>
表示引用这些代码。
假如你要使用Get方式提交数据,那么就应该这样写:
<script type="text/javascript">
ajaxGet("XMLFile.xml",function(str){alert(str);},function(error){alert(error);});
</script>
假如你要使用Post方式提交数据,那么就应该这样写:
<script type="text/javascript">
ajax.Post("ajax.aspx",
function(result){
alert(result);//result表示后台程序输出的数据
},
"a=1&b=2");
</script>
以上都是一些简单的例子,希望大家能看明白。