Class XMLHttpRequest

All Implemented Interfaces:
Serializable, Cloneable, org.htmlunit.corejs.javascript.ConstProperties, org.htmlunit.corejs.javascript.debug.DebuggableObject, org.htmlunit.corejs.javascript.Scriptable, org.htmlunit.corejs.javascript.SymbolScriptable

public class XMLHttpRequest extends XMLHttpRequestEventTarget
A JavaScript object for an XMLHttpRequest.
Author:
Daniel Gredler, Marc Guillemot, Ahmed Ashour, Stuart Begg, Ronald Brill, Sebastian Cato, Frank Danek, Jake Cobb, Thorsten Wendelmuth, Lai Quang Duong
See Also:
  • Field Details

    • UNSENT

      public static final int UNSENT
      The object has been created, but not initialized (the open() method has not been called).
      See Also:
    • OPENED

      public static final int OPENED
      The object has been created, but the send() method has not been called.
      See Also:
    • HEADERS_RECEIVED

      public static final int HEADERS_RECEIVED
      The send() method has been called, but the status and headers are not yet available.
      See Also:
    • LOADING

      public static final int LOADING
      Some data has been received.
      See Also:
    • DONE

      public static final int DONE
      All the data has been received; the complete data is available in responseBody and responseText.
      See Also:
  • Constructor Details

    • XMLHttpRequest

      public XMLHttpRequest()
      Creates a new instance.
    • XMLHttpRequest

      public XMLHttpRequest(boolean caseSensitiveProperties)
      Creates a new instance.
      Parameters:
      caseSensitiveProperties - if properties and methods are case sensitive
  • Method Details

    • jsConstructor

      public void jsConstructor()
      JavaScript constructor.
      Overrides:
      jsConstructor in class XMLHttpRequestEventTarget
    • getReadyState

      public int getReadyState()
      Returns the current state of the HTTP request. The possible values are:
      • 0 = unsent
      • 1 = opened
      • 2 = headers_received
      • 3 = loading
      • 4 = done
      Returns:
      the current state of the HTTP request
    • getResponseType

      public String getResponseType()
      Returns:
      the responseType property
    • setResponseType

      public void setResponseType(String responseType)
      Sets the responseType property.
      Parameters:
      responseType - the responseType property.
    • getResponse

      public Object getResponse()
      Returns:
      returns the response's body content as an ArrayBuffer, Blob, Document, JavaScript Object, or DOMString, depending on the value of the request's responseType property.
    • getResponseText

      public String getResponseText()
      Returns a string version of the data retrieved from the server.
      Returns:
      a string version of the data retrieved from the server
    • getResponseXML

      public Object getResponseXML()
      Returns a DOM-compatible document object version of the data retrieved from the server.
      Returns:
      a DOM-compatible document object version of the data retrieved from the server
    • getStatus

      public int getStatus()
      Returns the numeric status returned by the server, such as 404 for "Not Found" or 200 for "OK".
      Returns:
      the numeric status returned by the server
    • getStatusText

      public String getStatusText()
      Returns the string message accompanying the status code, such as "Not Found" or "OK".
      Returns:
      the string message accompanying the status code
    • abort

      public void abort()
      Cancels the current HTTP request.
    • getAllResponseHeaders

      public String getAllResponseHeaders()
      Returns the labels and values of all the HTTP headers.
      Returns:
      the labels and values of all the HTTP headers
    • getResponseHeader

      public String getResponseHeader(String headerName)
      Retrieves the value of an HTTP header from the response body.
      Parameters:
      headerName - the (case-insensitive) name of the header to retrieve
      Returns:
      the value of the specified HTTP header
    • open

      public void open(String method, Object urlParam, Object asyncParam, Object user, Object password)
      Assigns the destination URL, method and other optional attributes of a pending request.
      Parameters:
      method - the method to use to send the request to the server (GET, POST, etc)
      urlParam - the URL to send the request to
      asyncParam - Whether or not to send the request to the server asynchronously, defaults to true
      user - If authentication is needed for the specified URL, the username to use to authenticate
      password - If authentication is needed for the specified URL, the password to use to authenticate
    • send

      public void send(Object content)
      Sends the specified content to the server in an HTTP request and receives the response.
      Parameters:
      content - the body of the message being sent with the request
    • setRequestHeader

      public void setRequestHeader(String name, String value)
      Sets the specified header to the specified value. The open method must be called before this method, or an error will occur.
      Parameters:
      name - the name of the header being set
      value - the value of the header being set
    • overrideMimeType

      public void overrideMimeType(String mimeType)
      Override the mime type returned by the server (if any). This may be used, for example, to force a stream to be treated and parsed as text/xml, even if the server does not report it as such. This must be done before the send method is invoked.
      Parameters:
      mimeType - the type used to override that returned by the server (if any)
      See Also:
    • isWithCredentials

      public boolean isWithCredentials()
      Returns the withCredentials property.
      Returns:
      the withCredentials property
    • setWithCredentials

      public void setWithCredentials(boolean withCredentials)
      Sets the withCredentials property.
      Parameters:
      withCredentials - the withCredentials property.
    • get

      public Object get(String name, org.htmlunit.corejs.javascript.Scriptable start)
      Gets a named property from the object. Normally HtmlUnit objects don't need to overwrite this method as properties are defined on the prototypes from the XML configuration. In some cases where "content" of object has priority compared to the properties consider using utility HtmlUnitScriptable.getWithPreemption(String).
      Specified by:
      get in interface org.htmlunit.corejs.javascript.Scriptable
      Overrides:
      get in class HtmlUnitScriptable
    • put

      public void put(String name, org.htmlunit.corejs.javascript.Scriptable start, Object value)
      Specified by:
      put in interface org.htmlunit.corejs.javascript.Scriptable
      Overrides:
      put in class HtmlUnitScriptable
    • getUpload

      public XMLHttpRequestUpload getUpload()
      Returns the upload property.
      Returns:
      the upload property
    • getOnreadystatechange

      public org.htmlunit.corejs.javascript.Function getOnreadystatechange()
      Returns the event handler that fires on ready state change.
      Overrides:
      getOnreadystatechange in class XMLHttpRequestEventTarget
      Returns:
      the event handler that fires on ready state change
    • setOnreadystatechange

      public void setOnreadystatechange(org.htmlunit.corejs.javascript.Function readyStateChangeHandler)
      Sets the event handler that fires on ready state change.
      Overrides:
      setOnreadystatechange in class XMLHttpRequestEventTarget
      Parameters:
      readyStateChangeHandler - the event handler that fires on ready state change
    • getTimeout

      public int getTimeout()
    • setTimeout

      public void setTimeout(int timeout)