Advertisement
Guest User

Tomas Bartoli JS AJAX

a guest
Jul 5th, 2015
19
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. /**
  2.  * AJAX Library
  3.  *
  4.  * Author: Tomas Bartoli <tomasbartoli1992@gmail.com>
  5.  * Date ...
  6.  */
  7. "use strict";
  8.  
  9. $ajax.CONF               = {};
  10. $ajax.CONF.SHOW_ERROR    = true;
  11. $ajax.CONF.DEBUG         = true;
  12.  
  13. function $ajax($params) {
  14.     var _xml_http   = null;
  15.     var _show_error = $ajax.CONF.SHOW_ERROR;
  16.     var _debug      = $ajax.CONF.DEBUG;
  17.     var _data       = [];
  18.    
  19.     var _init_xml_http = function() {
  20.       if (window.XMLHttpRequest) {
  21.         return new XMLHttpRequest();
  22.       }
  23.       else {
  24.         return new ActiveXObject("Microsoft.XMLHTTP");
  25.       }
  26.     }
  27.    
  28.     if (!$params.url || !$params.type) {
  29.       if (_show_error) {
  30.         if (!$params.url) {
  31.           alert("$ajax::show_error: Url parameter is not optional.");
  32.         }
  33.         else {
  34.           alert("$ajax::show_error: Type parameter is not optional.");
  35.         }
  36.       }
  37.      
  38.       return;
  39.     }
  40.    
  41.     if (!$params.method) {
  42.       $params.method = true;
  43.     }
  44.    
  45.     _xml_http = _init_xml_http();
  46.     _xml_http.onreadystatechange = function() {
  47.       if (_xml_http.readyState == 4 && _xml_http.status == 200) {
  48.         if ($params.success) {
  49.           $params.success(_xml_http.responseText, _xml_http.readyState);
  50.        
  51.           if (_debug) {
  52.             console.log("$ajax::debug: Response Data:" + _xml_http.responseText);
  53.           }
  54.         }
  55.       }
  56.       else if (_show_error) {
  57.         alert("$ajax::show_error: FailureResponse\nState:" + _xml_http.readyState + "\nStatus:" + _xml_http.status);
  58.       }
  59.     }
  60.    
  61.     if ($params.data === 'object') {
  62.       for (var key in $params.data) {
  63.         var _tmp = $params.data[key];
  64.         if(Object.prototype.toString.call(_tmp) == "[object Array]") {
  65.           for(var i = 0, j = _tmp.length; i < j; i++) {
  66.             _data.push(encodeURIComponent(key) + "[]=" + encodeURIComponent(_tmp[i]));
  67.           }
  68.         }
  69.         else {
  70.           _data.push(encodeURIComponent(key) + "=" + encodeURIComponent(_tmp));
  71.         }
  72.       }
  73.       _data = _data.join("&");
  74.     }
  75.    
  76.     switch ($params.type) {
  77.       case "GET":
  78.         _xml_http.open("GET", $params.url + "?" + _data, $params.method);
  79.         _xml_http.send();
  80.       break;
  81.            
  82.       case "POST":
  83.         _xml_http.open("GET", $params.url, $params.method);
  84.         _xml_http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  85.         _xml_http.send(_data);
  86.       break;
  87.            
  88.       default:
  89.         if (_show_error) {
  90.           alert("$ajax::show_error: Parameter allowed: 'GET' or 'POST'.");
  91.         }
  92.       break;
  93.     }  
  94. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement