最简单的检索跨浏览器XmlHtt prequest方式 [英] Easiest way to retrieve cross-browser XmlHttpRequest
问题描述
什么是检索XmlHtt prequest对象,在所有浏览器的工作原理最简单,最安全的方法是什么?无需任何额外的库。有没有你经常使用code段?
What is the easiest and safest way to retrieve XmlHttpRequest object that works across all browsers? Without any extra libraries. Is there a code snippet you use often?
P.S。我知道有吨的净例子,但这是precisely我问的原因:有太多不同的例子,我只是想简单的东西,并证明工作
P.S. I know there are tons of examples on the net, but this is precisely the reason I am asking: there are too many different examples, and I just want something simple and proven to work.
jQuery和其他库是不是一种选择。 <一href="http://stackoverflow.com/questions/2450761/why-does-jquery-leak-memory-so-badly">http://stackoverflow.com/questions/2450761/why-does-jquery-leak-memory-so-badly
推荐答案
我有时用这个片段从 quirksmode.org 一>
但前提是有一个很好的理由不使用正确的库;)
But only if there's a really good reason not to use a proper library ;)
function sendRequest(url,callback,postData) {
var req = createXMLHTTPObject();
if (!req) return;
var method = (postData) ? "POST" : "GET";
req.open(method,url,true);
req.setRequestHeader('User-Agent','XMLHTTP/1.0');
if (postData)
req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
req.onreadystatechange = function () {
if (req.readyState != 4) return;
if (req.status != 200 && req.status != 304) {
// alert('HTTP error ' + req.status);
return;
}
callback(req);
}
if (req.readyState == 4) return;
req.send(postData);
}
var XMLHttpFactories = [
function () {return new XMLHttpRequest()},
function () {return new ActiveXObject("Msxml2.XMLHTTP")},
function () {return new ActiveXObject("Msxml3.XMLHTTP")},
function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];
function createXMLHTTPObject() {
var xmlhttp = false;
for (var i=0;i<XMLHttpFactories.length;i++) {
try {
xmlhttp = XMLHttpFactories[i]();
}
catch (e) {
continue;
}
break;
}
return xmlhttp;
}
这篇关于最简单的检索跨浏览器XmlHtt prequest方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!