JavaScript的Ajax封装GET和POST

<!DOCTYPE html>
<html>
<head>
<title>封装ajax</title>
</head>
<body>
<script type="text/javascript">

function createXHR()
{
if(typeof XMLHttpRequest != "undefined")
{
return new XMLHttpRequest();
}
else if(typeof ActiveXObject != "undefined")
{
var versions = [
"MSXML.2.XMLHttp.6.0",
"MSXML.2.XMLHttp.3.0",
"MSXML.2.XMLHttp"
];
for(var i = 0; i<versions.length;i++)
{
try{
return new ActiveXObject(version[i]);
}catch(e){
// 因类循环会报一个错,跳过些错
}
}
}
else
{
throw new Error("你的系统或浏览器不支持XHR对象!");
}
}

// 名值对转换字符串
function params(data)
{
var arr = [];
for(var i in data)
{
arr.push(encodeURIComponent(i)+"="+encodeURIComponent(data[i]));
}
return arr.join("&");
}

// ajax

function ajax(obj)
{
var xhr=createXHR();
obj.url=obj.url+"?rand="+Math.random();
obj.data = params(obj.data);
if(obj.method === "GET")
{
obj.url+=obj.url.indexOf("?") == -1 ?"?"+ obj.data:"&"+obj.data;
}

// if it‘s asynchronous
if(obj.async === true)
{
xhr.onreadystatechange = function()
{
if(xhr.readyState == 4)
{
callback();
}
}
}
xhr.open(obj.method,obj.url,obj.async);
if(obj.method === "POST")
{
xhr.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xhr.send(obj.data);
}
else
{
xhr.send(null);
}

// iF It‘s synchronization
if(obj.async === false)
{
callback();
}

// 封装重复调用代码
function callback()
{
if(xhr.status === 200)
{
obj.success(xhr.responseText);
}
else
{
alert("错误代码:"+xhr.status+"-错误信息:"+xhr.statusText);
}
}
}

// use ajax

addEventListener("click",function(){
ajax({
method:"POST",
url:"test.php",
data:{
"na&me":"ping",
"age":18
},
// 将对象传到text,然后对象又回调
success:function(text)
{
console.log("接收success数据为:"+text);
},
async:false
});
},false);
</script>
</body>
</html>

原文地址:http://blog.51cto.com/9535003/2170722

时间: 2024-10-08 14:29:37

JavaScript的Ajax封装GET和POST的相关文章

javascript 实现ajax封装

1 纯javascript 封装发送ajax数据 2 post.get方式 发送数据 1 GLOBAL.namespace("Ajax"); 2 /** 3 * 同步ajax 返回json Object 4 * 5 * @param {} 6 * urlStr 7 * @param{} type GET or POST方式 8 * @param {} 9 * paramsStr 与服务器约定 如果为GEt方式 则必须为 key1 = value & key2 = value 1

html --- ajax --- javascript --- 简单的封装

Ajax的简单封装 Ajax的全称是AsynchronousJavaScriptAndXML 如有疑问请参考:http://zh.wikipedia.org/zh-cn/AJAX 以及传智播客的视频教程:http://java.itcast.cn/news/8308d118/740a/4dcd/8dbf/c73d2fe5bc60.shtml 其实已经有好多框架对它进行了封装,但是还是有好多时候用到自己封装的 透露一下,本人是宇多田光的听众之一哦! 封装后的代码如下: 文件路径:\web\Ajax

javascript中Ajax请求的封装代码

/****************************ajax请求 start**************************************/ function ajaxClass(_url, _successCallback, _failureCallback, _urlParameters, _callbackParams, _async, _charset, _timeout, _frequency, _requestTimes, _frame) { /** * AJAX

第一百六十一节,封装库--JavaScript,完整封装库文件

封装库--JavaScript,完整封装库文件 /** *feng_zhuang_ku_1.0版本,js封装库,2016/12/29日:林贵秀 **/ /** 前台调用 * 每次调用$()创建库对象,使其每次调用都是独立的对象 * $()创建库对象,有一个可选参数,参数有两种方式,1是传入的this,2是传入的字符串 * 可选参数说明: * 传入的this,this,就是当前对象本身 * * 传入的字符串,代表获取元素选择器 * 参数是元素选择器(id值.class值.标签名称)其中一样的字符串

【javascript】ajax 基础 --本文转载

[javascript]ajax 基础 什么是 ajax ajax 即"Asynchronous JavaScript and XML"(异步 JavaScript 和 XML),也就是无刷新数据读取. http 请求 首先需要了解 http 请求的方法(GET 和 POST). GET 用于获取数据.GET 是在 URL 中传递数据,它的安全性低,容量低. POST 用于上传数据.POST 安全性一般,容量几乎无限. ajax 请求 ajax 请求一般分成 4 个步骤. 1.创建 a

利用CSS、JavaScript及Ajax实现图片预加载的三大方法

原文:3 Ways to Preload Images with CSS, JavaScript, or Ajax 译文:利用CSS.JavaScript及Ajax实现图片预加载的三大方法 预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布,也可帮助用户在浏览你网站内容时获得更好的用户体验.本文将分享三个不同的预加载技术,来增强网站的性能与可用性.

JavaScript基础---AJAX

内容提纲: 1.XMLHttpRequest 2.GET与POST 3.封装Ajax  发文不易,转载请注明链接出处,谢谢! 2005年Jesse James Garrett发表了一篇文章,标题为:"Ajax:A new Approach to Web Applications".他在这篇文章里介绍了一种技术,用他的话说,就叫:Ajax,是Asynchronous JavaScript + XML的简写.这种技术能够想服务器请求额外的数据而无须卸载页面(即刷新),会带来更好的用户体验.

jQuery与JavaScript与ajax三者的区别与联系

简单总结: 1.JS是一门前端语言. 2.Ajax是一门技术,它提供了异步更新的机制,使用客户端与服务器间交换数据而非整个页面文档,实现页面的局部更新. 3.jQuery是一个框架,它对JS进行了封装,使其更方便使用.jQuery使得JS与Ajax的使用更方便 关系比喻: 若把js比作木头,那么jquery就是木板(半成品) jQuery与ajax都是js的一个框架,各有各的功能,若js是父亲的话,jquery与ajax就是两个儿子 详细情况: 1.javascript是一种在客户端执行的脚本语

使用CSS、JavaScript及Ajax实现图片预加载的方法详解 

预加载图片是提高用户体验的一个很好方法.图片预先加载到浏览器中,访问者便可顺利地在你的网站上冲浪,并享受到极快的加载速度.这对图片画廊及图片占据很大比例的网站来说十分有利,它保证了图片快速.无缝地发布,也可帮助用户在浏览你网站内容时获得更好的用户体验.本文将分享使用CSS.JavaScript及Ajax实现图片预加载的三个不同技术,来增强网站的性能与可用性.一起来看看吧,希望对大家学习web前端有所帮助. 方法一:用CSS和JavaScript实现预加载 实现预加载图片有很多方法,包括使用CSS