Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>Problem in this ajax library. </p> <p><code>XHR.setRequestHeader()</code> must be called after <code>XHR.open()</code>.</p> <pre><code>// @method XRequest: Object constructor. As this implements a singleton, the object can't be created calling the constructor, GetInstance should be called instead function XRequest() { this.XHR = XRequest.CreateXHR(); } XRequest.instance = null; // @method static GetInstance: Creates a singleton object of type XRequest. Should be called whenever an object of that type is required. // @return: an instance of a XRequest object XRequest.GetInstance = function() { if(XRequest.instance == null) { XRequest.instance = new XRequest(); } return XRequest.instance; } // @method static CreateXHR: Implments a basic factory method for creating a XMLHttpRequest object // @return: XMLHttp object or null XRequest.CreateXHR = function() { var xhr = null; var factory = [ function() { return new XMLHttpRequest(); }, function() { return new ActiveXObject("Msxml2.XMLHTTP"); }, function() { return new ActiveXObject("Microsoft.XMLHTTP"); } ]; for(var i = 0; i &lt; factory.length; ++i) { var f = factory[i]; xhr = f(); if(xhr) return xhr; } return null; } XRequest.prototype.SetRequestHeader = function(name, value) { if(this.XHR) { //alert(name+'|||'+value); this.XHR.setRequestHeader(name, value); } } XRequest.prototype.SendRequest = function(args) { var async = true; var type = ""; var url = ""; var username = ""; var password = ""; var body = null; var success = null; var failure = null; for(e in args) { switch(e) { case "async": async = args[e]; break; case "type": type = args[e]; break; case "success": success = args[e]; break; case "failure": failure = args[e]; break; case "url": url = args[e]; break; case "username": username = args[e]; break; case "password": password = args[e]; break; case "body": body = args[e]; break; } } var that = this; this.XHR.onreadystatechange = function() { alert("readyState == " + that.XHR.readyState + " status == " + that.XHR.status); if(that.XHR.readyState == 4) { if(that.XHR.status == 200 || that.XHR.status == 0) { if(success) success(that.XHR); } else { if(failure) failure(); } } }; this.XHR.open(type, url, async, username, password); for(e in args) { switch(e) { case "setHeader": var h = args[e].split(":"); if(h.length == 2) { this.SetRequestHeader(h[0], h[1]); } break; } } this.XHR.send(body); } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload