Index: trunk/kernel/admin_templates/incs/ajax.js =================================================================== diff -u -r5062 -r5063 --- trunk/kernel/admin_templates/incs/ajax.js (.../ajax.js) (revision 5062) +++ trunk/kernel/admin_templates/incs/ajax.js (.../ajax.js) (revision 5063) @@ -2,16 +2,18 @@ Request.timeout = 5000; //5 seconds Request.method = 'GET'; -Request.contentType = ''; +Request.headers = new Array(); Request.params = null; -Request.makeRequest = function(p_url, p_busyReq, p_progId, p_successCallBack, p_errorCallBack, p_pass) { +Request.makeRequest = function(p_url, p_busyReq, p_progId, p_successCallBack, p_errorCallBack, p_pass, p_object) { //p_url: the web service url //p_busyReq: is a request for this object currently in progress? //p_progId: element id where progress HTML should be shown //p_successCallBack: callback function for successful response //p_errorCallBack: callback function for erroneous response //p_pass: string of params to pass to callback functions + //p_object: object of params to pass to callback functions + if (p_busyReq) return; var req = Request.getRequest(); if (req != null) { @@ -22,38 +24,44 @@ p_busyReq = false; window.clearTimeout(toId); if (req.status == 200) { - p_successCallBack(req,p_pass); + p_successCallBack(req, p_pass, p_object); } else { - p_errorCallBack(req,p_pass); + p_errorCallBack(req, p_pass, p_object); } Request.hideProgress(p_progId); } } var $ajax_mark = (p_url.indexOf('?') ? '&' : '?') + 'ajax=yes'; req.open(Request.method, p_url + $ajax_mark, true); + if (Request.method == 'POST') { - req.setRequestHeader('Content-type', 'application/x-www-form-urlencoded'); - req.setRequestHeader("referer", p_url); + Request.headers['Content-type'] = 'application/x-www-form-urlencoded'; + Request.headers['referer'] = p_url; + } + else { + Request.headers['If-Modified-Since'] = 'Sat, 1 Jan 2000 00:00:00 GMT'; + } + + Request.sendHeaders(req); + if (Request.method == 'POST') { req.send(Request.params); Request.method = 'GET'; // restore method back to GET } else { - req.setRequestHeader('If-Modified-Since', 'Sat, 1 Jan 2000 00:00:00 GMT'); - if (Request.contentType) { - req.setRequestHeader('Content-type', Request.contentType); - req.send(null); - Request.contentType = ''; - } - else { - req.send(null); - } + req.send(null); } - + Request.headers = new Array(); // reset header afterwards var toId = window.setTimeout( function() {if (p_busyReq) req.abort();}, Request.timeout ); } } +Request.sendHeaders = function($request) { + for (var $header_name in Request.headers) { + $request.setRequestHeader($header_name, Request.headers[$header_name]); + } +} + Request.getRequest = function() { var xmlHttp; try { xmlHttp = new ActiveXObject('MSXML2.XMLHTTP'); return xmlHttp; } catch (e) {}