Ajax对象包含post和get两种异步传输方式
2023-06-13 09:14:11 时间
/**
*@authorSupersha
*@QQ:770104121
*/
<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=utf-8">
<title>AjaxDocument</title>
<scripttype="text/javascript">
//注意,编码要同意为utf-8才能避免中文参数和返回中文的乱码问题
functionAjax(prop){
this.action(prop);//在实例化的时候就调用action方法
}
Ajax.prototype={
createXHR:function(){//创建XMLHttpRequest对象
varxhr=false;
if(window.XMLHttpRequest){
xhr=newXMLHttpRequest();
}
else
if(window.ActiveXObject){
try{
xhr=newActiveXObject("Msxml2.XMLHTTP");
}
catch(e){
xhr=newActiveXObject("Microsoft.XMLHTTP");
}
}
returnxhr;
},
action:function(prop){
varxhr=this.createXHR();
if(xhr){
varurl=encodeURI(prop["url"]);//对URL进行编码
if(prop["method"]=="GET"&&url&&prop["success"]){//GET方法
xhr.onreadystatechange=function(){
(function(){//自执行函数用于检查服务器的返回状态并执行回调函数
if(xhr.readyState==4&&xhr.status==200){
prop["success"](xhr);//执行回调函数
}
})();
};
//alert(prop["hander"]instanceofFunction);
xhr.open("GET",url,true);
xhr.send(null);
}
else
if(prop["method"]=="POST"&&url&&prop["success"]){//POST方法
xhr.onreadystatechange=function(){
(function(){
if(xhr.readyState==4&&xhr.status==200){
prop["success"](xhr);//执行回调函数
}
})();
};
if(prop["params"]){
url=url.indexOf("?")>-1?url+"&"+prop["params"]:url+"?"+prop["params"];
}
xhr.open("POST",url,true);
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.send(null);
}
}
else
if(!xhr&&prop["fail"]){
prop["fail"]();
}
}
}
functiongetData(){
varajax=newAjax({
url:"test.php",
method:"POST",
success:onComplete,
params:"name="+escape("沙锋")//进行编码
});
}
functiononComplete(obj){
alert(unescape(obj.responseText));//进行转码
}
</script>
</head>
<body>
<inputtype="button"value="GetData"onclick="getData()"/>
</body>
</html>
注释:
Ajax对象接受一个对象字面量为参数,这个对象字面量中包含method,url,success,params,fail参数
method:"GET"或者"POST"
url:服务器端文件路径
success:当请求没有错误的时候,调用的回调函数,该回调函数带一个XMLHttpRequest对象的参数
fail:当请求错误的时候调用
params:当使用POST方法发送请求是,params为参数字符串
相关文章
- ajax发送异步请求四个步骤,AJAX的异步请求的四个步骤[通俗易懂]
- AJAX 请求
- Ajax调用MySQL给网站带来快捷体验(ajax调用mysql)
- Ajax实现从MySQL读取数据(ajax 读取mysql)
- 学习Ajax基于MySQL的实例实践(ajax实例 mysql)
- MySQL与Ajax的联动大大提高网站数据交互的效率(ajax和mysql连用)
- 从MySQL分批传输至客户端AJAX解决方案(ajax分批mysql)
- MySQL与Ajax 精彩无穷的开发实现(ajax与mysql)
- Ajax与MySQL实现高效率数据加载(ajax mysql加载)
- Ajax实现对Oracle的异步操作(ajax操作oracle)
- 使用Ajax与Oracle实现极致可靠性开发(ajax oracle)
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法
- 用ajax动态加载需要的js文件
- PHP开源AJAX框架14种
- jquery中ajax调用json数据的使用说明
- jQuery之ajax技术的详细介绍
- 浅析ajax请求json数据并用js解析(示例分析)
- 使用js声明数组,对象在jsp页面中(获得ajax得到json数据)
- ajax回调函数中使用$(this)取不到对象的解决方法
- PHPcurl抓取AJAX异步内容示例