null/demo.local.php
[gitlive] / XMLHttpRequest.js
index 49608e9..381b759 100644 (file)
@@ -87,6 +87,12 @@ XMLHttpRequest.prototype = {
     send  : function(data)
     {
         data = data|| false;
+        
+        if (typeof(data) == 'object') {
+            // params..
+            data = this.urlEncode(data);
+        }
+        
         if (data) {
             this._message.set_request('application/x-www-form-urlencoded', Soup.MemoryUse.COPY, data, data.length)
         }
@@ -141,7 +147,31 @@ XMLHttpRequest.prototype = {
     getAllResponseHeaders : function ()
     {
         
-    }
-   
+    },
+    urlEncode : function(o){
+        if(!o){
+            return "";
+        }
+        var buf = [];
+        for(var key in o){
+            var ov = o[key], k = encodeURIComponent(key);
+            var type = typeof ov;
+            if(type == 'undefined'){
+                buf.push(k, "=&");
+            }else if(type != "function" && type != "object"){
+                buf.push(k, "=", encodeURIComponent(ov), "&");
+            }else if(ov instanceof Array){
+                if (ov.length) {
+                    for(var i = 0, len = ov.length; i < len; i++) {
+                        buf.push(k, "=", encodeURIComponent(ov[i] === undefined ? '' : ov[i]), "&");
+                    }
+                } else {
+                    buf.push(k, "=&");
+                }
+            }
+        }
+        buf.pop();
+        return buf.join("");
+    },
     
 };