在javascript下向服务器发送请求,或者是向服务器请求资源是Ajax开发中最常用到的。其中Netvibes做的兼容方法很方便功能也很强。
var Request = new Object();
Request.send = function(url, method, callback, data, urlencoded) {
var req;
if (window.XMLHttpRequest) {
req = new XMLHttpRequest();
} else if (window.ActiveXObject) {
req = new ActiveXObject("Microsoft.XMLHTTP");
}
req.onreadystatechange = function() {
if (req.readyState == 4) {// only if req shows "loaded"
if (req.status < 400) {// only if "OK"
(method=="POST") ? callback(req) : callback(req,data);
} else {
alert(url+_("error")+":/n" + req.status+ "/" + req.statusText);
}
} else {
// alert(req.readyState);
}
}
if (method=="POST") {
req.open("POST", url, true);
if (urlencoded) req.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
req.send(data);
} else {
req.open("GET", url, true);
req.send(null);
}
return req;
}
Request.sendRawPOST = function(url, data, callback) {
Request.send(url, "POST", callback, data, false);
}
Request.sendPOST = function(url, data, callback) {
Request.send(url, "POST", callback, data, true);
}
Request.sendGET = function(url, callback, args) {
return Request.send(url, "GET", callback, args);
}
function getResponse(response,params) {
alert(params);
alert(response.responseText);
}
//==使用方法==//
Request.sendGET("ddt.xml",getResponse,"参数1");
Request.sendGET("http://rss.sina.com.cn/news/marquee/ddt.xml",getResponse,"参数2");
实例下载:
暂时无法上传附件