ajax



function getXMLHttpRequest() {
var xmlhttp;
if (window.XMLHttpRequest) {
try {
xmlhttp = new XMLHttpRequest();
xmlhttp.overrideMimeType("text/html;charset=UTF-8");//设定以UTF-8编码识别数据
} catch (e) {}
} else if (window.ActiveXObject) {
try {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Msxml2.XMLHttp");
} catch (e) {
try {
xmlhttp = new ActiveXObject("Msxml3.XMLHttp");
} catch (e) {}
}
}
}
return xmlhttp;
}


function ajax(options){

options = {

type: options.type || "POST",
url: options.url || "",
timeout: options.timeout || 5000,
onComplete: options.onComplete || function(){},
onError: options.onError || function(){},
onSuccess: options.onSuccess || function(){},
data: options.data || ""
};

var xml = getXMLHttpRequest();
xml.open(options.type,options.url,true);

if('POST' == options.type){
xml.setRequestHeader(
"Content-Type", "application/x-www-form-urlencoded");

if ( xml.overrideMimeType )
xml.setRequestHeader("Connection", "close");
}

var timeoutLength = options.timeout;
var requestDone = false;

setTimeout(function(){
requestDone = true;
},timeoutLength);

xml.onreadystatechange = function(){
if(xml.readyState == 4 && !requestDone){
if(httpSuccess(xml)){
options.onSuccess(httpData(xml,options.type));
}else{
options.onError();
}

options.onComplete();
xml = null;
}
};

if('POST' == options.type)
xml.send(serialize(options.data));
else
xml.send();

function httpSuccess(r){
try{
return !r.status && location.protocol == "file:" ||
(r.status >=200 && r.status < 300) ||
r.status == 304 ||
navigator.userAgent.indexOf("Safari") >=0 && typeof r.status == "undefined";
}catch(e){}
return false;
}

function httpData(r,type){
var ct = r.getResponseHeader("content-type");
var data = !type && ct && ct.indexOf("xml") >=0;
data = type == "xml" || data ? r.responseXML : r.responseText;

if(type == "script")
eval.call(window,data);

return data;
}

function serialize(a) {
var s = [];

if ( a.constructor == Array ) {
for ( var i = 0; i < a.length; i++ )
s.push( a[i].name + "=" + encodeURIComponent( a[i].value ) );
} else {
for ( var j in a )
s.push( j + "=" + encodeURIComponent( a[j] ) );
}
return s.join("&");
}

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值