diff options
Diffstat (limited to 'fs_selfservice/FS-SelfService/cgi/send_xmlhttp.js')
-rw-r--r-- | fs_selfservice/FS-SelfService/cgi/send_xmlhttp.js | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/fs_selfservice/FS-SelfService/cgi/send_xmlhttp.js b/fs_selfservice/FS-SelfService/cgi/send_xmlhttp.js new file mode 100644 index 000000000..e2991684a --- /dev/null +++ b/fs_selfservice/FS-SelfService/cgi/send_xmlhttp.js @@ -0,0 +1,43 @@ +function rs_init_object () { + var A; + try { + A=new ActiveXObject("Msxml2.XMLHTTP"); + } catch (e) { + try { + A=new ActiveXObject("Microsoft.XMLHTTP"); + } catch (oc) { + A=null; + } + } + if(!A && typeof XMLHttpRequest != "undefined") + A = new XMLHttpRequest(); + if (!A) + alert("Can't create XMLHttpRequest object"); + return A; +} + +function send_xmlhttp (url,args,callback) { + args = args || []; + callback = callback || function (data) { return data }; + var content = ''; + for (var i = 0; i < args.length; i = i + 2) { + content = content + "&" + args[i] + "=" + escape(args[i+1]); + } + content = content.replace( /[+]/g, '%2B'); // fix unescaped plus signs + + var xmlhttp = rs_init_object(); + xmlhttp.open("POST", url, true); + + xmlhttp.onreadystatechange = function() { + if (xmlhttp.readyState != 4) + return; + if (xmlhttp.status == 200) { + var data = xmlhttp.responseText; + callback(data); + } + }; + + xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + xmlhttp.send(content); +} + |