diff options
author | Dries Buytaert <dries@buytaert.net> | 2005-07-18 12:56:45 +0000 |
---|---|---|
committer | Dries Buytaert <dries@buytaert.net> | 2005-07-18 12:56:45 +0000 |
commit | 9f67ddf986678ed6bc5ebfe9bf1f1c21acb2fd35 (patch) | |
tree | 6d0a5307b85153e7e460fec2846258dfc44cbd4b /misc/drupal.js | |
parent | e0158075f660470d13b071978828dd7c4d0e9b91 (diff) | |
download | brdo-9f67ddf986678ed6bc5ebfe9bf1f1c21acb2fd35.tar.gz brdo-9f67ddf986678ed6bc5ebfe9bf1f1c21acb2fd35.tar.bz2 |
- Patch #23746 by Thox: added support for Ajax HTTPPost functionality.
Diffstat (limited to 'misc/drupal.js')
-rw-r--r-- | misc/drupal.js | 67 |
1 files changed, 53 insertions, 14 deletions
diff --git a/misc/drupal.js b/misc/drupal.js index 4e56fabd3..cdea993c6 100644 --- a/misc/drupal.js +++ b/misc/drupal.js @@ -23,16 +23,16 @@ if (isJsEnabled()) { * Make IE's XMLHTTP object accessible through XMLHttpRequest() */ if (typeof XMLHttpRequest == 'undefined') { - XMLHttpRequest = function () { - var msxmls = ['MSXML3', 'MSXML2', 'Microsoft'] - for (var i=0; i < msxmls.length; i++) { - try { - return new ActiveXObject(msxmls[i]+'.XMLHTTP') - } - catch (e) { } - } - throw new Error("No XML component installed!") - } + XMLHttpRequest = function () { + var msxmls = ['MSXML3', 'MSXML2', 'Microsoft'] + for (var i=0; i < msxmls.length; i++) { + try { + return new ActiveXObject(msxmls[i]+'.XMLHTTP') + } + catch (e) { } + } + throw new Error("No XML component installed!") + } } /** @@ -41,16 +41,55 @@ if (typeof XMLHttpRequest == 'undefined') { function HTTPGet(uri, callbackFunction, callbackParameter) { var xmlHttp = new XMLHttpRequest(); var bAsync = true; - if (!callbackFunction) + if (!callbackFunction) { bAsync = false; + } xmlHttp.open('GET', uri, bAsync); xmlHttp.send(null); if (bAsync) { if (callbackFunction) { xmlHttp.onreadystatechange = function() { - if (xmlHttp.readyState == 4) - callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter) + if (xmlHttp.readyState == 4) { + callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter); + } + } + } + return true; + } + else { + return xmlHttp.responseText; + } +} + +/** + * Creates an HTTP POST request and sends the response to the callback function + */ +function HTTPPost(uri, object, callbackFunction, callbackParameter) { + var xmlHttp = new XMLHttpRequest(); + var bAsync = true; + if (!callbackFunction) { + bAsync = false; + } + xmlHttp.open('POST', uri, bAsync); + + var toSend = ''; + if (typeof object == 'object') { + xmlHttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); + for (var i in object) + toSend += (toSend ? '&' : '') + i + '=' + escape(object[i]); + } + else { + toSend = object; + } + xmlHttp.send(toSend); + + if (bAsync) { + if (callbackFunction) { + xmlHttp.onreadystatechange = function() { + if (xmlHttp.readyState == 4) { + callbackFunction(xmlHttp.responseText, xmlHttp, callbackParameter); + } } } return true; @@ -163,4 +202,4 @@ function removeNode(node) { else { return false; } -} +}
\ No newline at end of file |