summaryrefslogtreecommitdiff
path: root/misc/drupal.js
diff options
context:
space:
mode:
authorDries Buytaert <dries@buytaert.net>2005-07-18 12:56:45 +0000
committerDries Buytaert <dries@buytaert.net>2005-07-18 12:56:45 +0000
commit9f67ddf986678ed6bc5ebfe9bf1f1c21acb2fd35 (patch)
tree6d0a5307b85153e7e460fec2846258dfc44cbd4b /misc/drupal.js
parente0158075f660470d13b071978828dd7c4d0e9b91 (diff)
downloadbrdo-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.js67
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