Ajax 对象 包含post和get两种异步传输方式

2016-02-19 10:59 14 1 收藏

下面这个Ajax 对象 包含post和get两种异步传输方式教程由图老师小编精心推荐选出,过程简单易学超容易上手,喜欢就要赶紧get起来哦!

【 tulaoshi.com - Web开发 】

代码如下:

/**
* @author Supersha
* @QQ:770104121
*/
!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"
html
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8"
titleAjax Document/title
script type="text/javascript"
//注意,编码要同意为utf-8才能避免中文参数和返回中文的乱码问题
function Ajax(prop){
this.action(prop); //在实例化的时候就调用action方法
}
Ajax.prototype = {
createXHR: function(){ //创建XMLHttpRequest对象
var xhr = false;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
}
else
if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
}
}
return xhr;
},
action: function(prop){
var xhr = this.createXHR();
if (xhr) {
var url = 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"] instanceof Function);
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"]();
}
}
}
function getData(){
var ajax = new Ajax({
url: "test.php",
method: "POST",
success: onComplete,
params: "name="+escape("沙锋") //进行编码
});
}
function onComplete(obj){
alert(unescape(obj.responseText)); //进行转码
}
/script
/head
body
input type="button" value="Get Data" onclick="getData()"/
/body
/html

注释:
Ajax对象接受一个对象字面量为参数,这个对象字面量中包含method,url,success,params,fail参数
method:"GET"或者"POST"
url:服务器端文件路径
success:当请求没有错误的时候,调用的回调函数,该回调函数带一个XMLHttpRequest对象的参数
fail:当请求错误的时候调用
params:当使用POST方法发送请求是,params为参数字符串

来源:http://www.tulaoshi.com/n/20160219/1596294.html

延伸阅读
标签: Web开发
1.php的Java模块  php发布版中包含一个Java扩展模块,可以用来调用Java对象,例如:  ?php  $system=new Java("java.lang.System");  print "Java version=".$system-getProperty("java.version")."   ";  ?  2.minij2ee应用服务器SJOP协议实现  minij2ee应用服务...
《刺客信条2》两种暗杀方式 在草垛里,扒房檐时,坐板凳时  均有两种暗杀方式:低调和高调(跳杀只有一种) 以前只会用低调的  后来发现还有高调的  就是按住右键 做出来的动作很具侵略性  不过顾名思义会被易别人发现 希望大家能更好的爽刺客  真是好游戏  期待破解那3个隐藏地点 《刺客信条2》中文攻略解说 ...
标签: Web开发
原文:《Speeding up JavaScript: Working with the DOM》 作者:KeeKim Heng, Google Web Developer 翻译:http://www.blogjava.net/emu/archive/2010/03/01/314185.html 在我们开发互联网富应用(RIA)时,我们经常写一些javascript脚本来修改或者增加页面元素,这些工作最终是DOM或者说文档对象模 型来完成的,而我们的实现方式会影响到...
标签: 胎教
两种你所不知道的胎教方法 好的胎教不仅能够更好的促进胎儿发育,还能够对孕期的母婴健康起到有益的作用。谈到胎教,我们最为熟悉的就是tulaoshi音乐胎教了。其实胎教的方法很多,音乐胎教只是其中之一,而我们在进行胎教的时候最好能够综合运用多种不同的方法,这样才能够全方位促进胎儿的发育。那么都有哪些胎教方法呢。下面我就为你...
标签: Web开发
代码如下: script type="text/javascript"!-- var request = false; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = false; } } }...

经验教程

432

收藏

65
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部