什么是最简单和最安全的方法来检索适用于所有浏览器的XmlHttpRequest对象?没有任何额外的库。有没有你经常使用的代码段?
P.S。我知道网上有很多例子,但这正是我要求的原因:有太多不同的例子,我只想要一些简单的,可靠的工作。
jQuery和其他库不是一个选项。
Why does jquery leak memory so badly?
我有时使用这个片段从
quirksmode.org
原文链接:https://www.f2er.com/ajax/160680.html但只有有一个真正好的理由不使用一个合适的库;)
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; }