// возвращает объект AJAX // by YS function httpRequest(type){ if(type == 'undefined') // 'text/xml', 'text/plain' type = 'text/plain'; var httpRequest; if(window.XMLHttpRequest){ // Mozilla, Safari, ... httpRequest = new XMLHttpRequest(); if(httpRequest.overrideMimeType){ httpRequest.overrideMimeType(type); // See note below about this line } } else if(window.ActiveXObject){ // IE try{ httpRequest = new ActiveXObject("Msxml2.XMLHTTP"); } catch(e){ try{ httpRequest = new ActiveXObject("Microsoft.XMLHTTP"); } catch(e){} } } return httpRequest; } // цепляет обработчик на onReady, передает запрос серваку // request - объект XMLHttpRequest; // func - ссылка на функцию-обработчик; // url - линк запроса; // mode - тип запроса (GET, POST, PUT) // send_data - передаваемые данные, в формате JSON function makeRequest(request, func, url, mode, send_data){ if(mode == null) mode = 'GET'; if(!request) alert('Cannot create an XMLHTTP instance'); request.onreadystatechange = function(){ try { if(request.readyState == 4){ if(request.status == 200){ func(); } else { var msg = null; msg = document.getElementById('ajax_err_msg'); if(msg == null){ var msg = document.createElement("div"); msg.id = 'ajax_err_msg'; } msg.setAttribute('style', 'border: 1px solid red; padding: 10px; background: #EDCDCD; color: black; position: absolute; top: 100px; left: 100px; width: 200px; display: block;') msg.innerHTML = request.status + ' ' + request.statusText + '

' + '' document.body.appendChild(msg); //alert(request.status + ' ' + request.statusText); } } } catch(e){ //alert('Caught Exception: ' + e + ' - ' + e.description); } } if(mode == 'GET') url += '?' + send_data; request.open(mode, url, true); if(send_data != null && mode == 'POST') request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); request.send(send_data); }