javascript-ajax学习
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-ajax学习,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3054字,纯文字阅读大概需要5分钟。
内容图文
* @todo 封装Ajax 传输类
* @param params:参数
* @example 用法: var mAjaxer = new Ajaxer(parames);mAjaxer.send();
*/
(function (window,undefined) {
var defined = {},
rtrim = /^(\s|\u00A0)+|(\s|\u00A0)+$/g;
defined.trim = function( text )
{
return (text || "").replace( rtrim, "" );
};
defined.parseJSON = function(data,error)
{
if ( typeof data !== "string" || !data )
return null;
data = this.trim(data);
// Make sure the incoming data is actual JSON
// Logic borrowed from http://json.org/json2.js
if ( /^[\],:{}\s]*$/.test(data.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, "@")
.replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, "]")
.replace(/(?:^|:|,)(?:\s*\[)+/g, "")) ) {
// Try to use the native JSON parser first
return window.JSON && window.JSON.parse ?
window.JSON.parse( data ) :
(new Function("return " + data))();
}
else
error("Invalid JSON: " + data);
};
defined.json2String = function(jsonData) {
var strArr = [];
for(var k in jsonData) {
strArr.push(k + "=" + jsonData[k]);
}
return strArr.join("&");
}
var Ajaxer = function(params)
{
var _p = {},
xmlHttp;
if (typeof params == ‘undefined‘)
{
return false;
}
// 发送请求
this.send = function ()
{
xmlHttp = null;
xmlHttp = _p.createXMLHttp();
if(xmlHttp == null)
{
error = {‘code‘ : 404,"message" : "您的浏览器版本过低,无法创建异步对象,请升级您的浏览器!"}
params.error(error);
}
else
{
//打开ajax请求
xmlHttp.open(params.method,params.url,params.async);
//一般jquery会传递这个参数,进行区分ajax请求
xmlHttp.setRequestHeader("X-Requested-With","XMLHttpRequest");
//如果是post的话,要对url进行encode
if (params.method.toLowerCase() == ‘post‘)
{
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
if (typeof params.data != ‘string‘)
params.data = defined.json2String(params.data);
//对post或get发送数据
xmlHttp.send(params.data);
}
else
{
xmlHttp.send(null);
}
//处理状态
xmlHttp.onreadystatechange = _p.SendBack;
}
};
//处理回调函数
_p.SendBack = function ()
{
if(xmlHttp.readyState == 4)
{
if(xmlHttp.status == 200)
{
var data,
ct = xmlHttp.getResponseHeader("content-type") || "";
data = xmlHttp.response;
//判断是否是json
if (params.dataType === "json" || !params.dataType && ct.indexOf("json") >= 0)
{
data = defined.parseJSON(data,params.error);
}
params.success(data);
}
else
{
var error = {‘code‘ : xmlHttp.status,"message" : xmlHttp.statusText};
params.error(error);
}
if (params.async)
{
xmlHttp = null;
}
}
};
//创建ajax对象
_p.createXMLHttp = function()
{
var xmlhttp = null;
// 针对不同浏览器建立这个对象的不同方式写不同代码
if(window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
//针对某些特定版本的Mozillar浏览器的BUG进行修正
if(xmlhttp.overrideMimeType) {
xmlhttp.overrideMimeType("text/xml");
}
} else if (window.ActiveXObject) {
var activexName = [‘MSXML2.XMLHTTP‘, ‘Microsoft.XMLHTTP‘];
for (var i=0; i<activexName.length; i++) {
try {
xmlhttp = new ActiveXObject(activexName[i]);
break;
} catch(e) {}
}
}
return xmlhttp;
}
}
window.Ajaxer = Ajaxer;
window.defined = defined;
})(window);
用惯了jquery原生的忘了差不多,补一下.
原文:http://www.cnblogs.com/kaixincainiao/p/3591571.html
内容总结
以上是互联网集市为您收集整理的javascript-ajax学习全部内容,希望文章能够帮你解决javascript-ajax学习所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。