虽然我建议使用完整的库来简化用法,但是在现代浏览器中,进行AJAX请求可能非常简单:
var req = new XMLHttpRequest();req.onreadystatechange = function(){ if(this.readyState == 4){ alert('Status pre: ' + this.status); // The response content is in this.responseText }}req.open('GET', '/some-url', true);req.send();以下代码段是基于quirksmode.org的代码段的更高级代码段,甚至支持非常旧的浏览器(早于Internet
Explorer 7):
function sendRequest(url,callback,postData) { var req = createXMLHTTPObject(); if (!req) return; var method = (postData) ? "POST" : "GET"; req.open(method,url,true); // Setting the user agent is not allowed in most modern browsers It was // a requirement for some Internet Explorer versions a long time ago. // There is no need for this header if you use Internet Explorer 7 or // above (or any other browser) // req.setRequestHeader('User-Agent','XMLHTTP/1.0'); if (postData) req.setRequestHeader('Content-type','application/x-www-form-urlenpred'); 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("Msxml3.XMLHTTP")}, function () {return new ActiveXObject("Msxml2.XMLHTTP.6.0")}, function () {return new ActiveXObject("Msxml2.XMLHTTP.3.0")}, function () {return new ActiveXObject("Msxml2.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;}


