A client-side XHR request for getting data from a URL, formally known as XMLHttpRequest.

HttpRequest can be used to obtain data from HTTP and FTP protocols, and is useful for AJAX-style page updates.

The simplest way to get the contents of a text file, such as a JSON-formatted file, is with getString. For example, the following code gets the contents of a JSON file and prints its length:

var path = 'myData.json';
HttpRequest.getString(path)
    .then((String fileContents) {
      print(fileContents.length);
    })
    .catchError((Error error) {
      print(error.toString());
    });

Fetching data from other servers

For security reasons, browsers impose restrictions on requests made by embedded apps. With the default behavior of this class, the code making the request must be served from the same origin (domain name, port, and application layer protocol) as the requested resource. In the example above, the myData.json file must be co-located with the app that uses it. You might be able to get around this restriction by using CORS headers or JSONP.

Other resources

Inheritance
Annotations
  • @DomName('XMLHttpRequest')

Constants

DONE int

@DocsEditable(), @DomName('XMLHttpRequest.DONE')
4
HEADERS_RECEIVED int

@DocsEditable(), @DomName('XMLHttpRequest.HEADERS_RECEIVED')
2
LOADING int

@DocsEditable(), @DomName('XMLHttpRequest.LOADING')
3
OPENED int

@DocsEditable(), @DomName('XMLHttpRequest.OPENED')
1
readyStateChangeEvent EventStreamProvider<ProgressEvent>

Static factory designed to expose readystatechange events to event handlers that are not necessarily instances of HttpRequest.

@DocsEditable(), @DomName('XMLHttpRequest.readystatechangeEvent')
const EventStreamProvider<ProgressEvent>('readystatechange')
UNSENT int

@DocsEditable(), @DomName('XMLHttpRequest.UNSENT')
0

Static Properties

instanceRuntimeType Type

@Deprecated("Internal Use Only"), read-only
supportsCrossOrigin bool

Checks to see if the current platform supports making cross origin requests.

read-only
supportsLoadEndEvent bool

Checks to see if the LoadEnd event is supported on the current platform.

read-only
supportsOverrideMimeType bool

Checks to see if the overrideMimeType method is supported on the current platform.

read-only
supportsProgressEvent bool

Checks to see if the Progress event is supported on the current platform.

read-only

Static Methods

getString(String url, { bool withCredentials, void onProgress(ProgressEvent e) }) Future<String>

Creates a GET request for the specified url.

postFormData(String url, Map<String, String> data, { bool withCredentials, String responseType, Map<String, String> requestHeaders, void onProgress(ProgressEvent e) }) Future<HttpRequest>

Makes a server POST request with the specified data encoded as form data.

request(String url, { String method, bool withCredentials, String responseType, String mimeType, Map<String, String> requestHeaders, sendData, void onProgress(ProgressEvent e) }) Future<HttpRequest>

Creates and sends a URL request for the specified url.

requestCrossOrigin(String url, { String method, String sendData }) Future<String>

Makes a cross-origin request to the specified URL.

@Experimental()

Constructors

HttpRequest()

General constructor for any type of request (GET, POST, etc).

factory
HttpRequest.internal_()

Properties

onReadyStateChange Stream<ProgressEvent>

Event listeners to be notified every time the HttpRequest object's readyState changes values.

@DocsEditable(), @DomName('XMLHttpRequest.onreadystatechange'), read-only
readyState int

Indicator of the current state of the request:

@DocsEditable(), @DomName('XMLHttpRequest.readyState'), read-only
response Object

The data received as a reponse from the request.

@DocsEditable(), @DomName('XMLHttpRequest.response'), @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.IE, '10'), @SupportedBrowser(SupportedBrowser.SAFARI), read-only
responseHeaders Map<String, String>

Returns all response headers as a key-value map.

read-only
responseText String

The response in String form or empty String on failure.

@DocsEditable(), @DomName('XMLHttpRequest.responseText'), read-only
responseType String

String telling the server the desired response format.

@DocsEditable(), @DomName('XMLHttpRequest.responseType'), read / write
responseUrl String

@DocsEditable(), @DomName('XMLHttpRequest.responseURL'), @Experimental(), read-only
responseXml Document

The request response, or null on failure.

@DocsEditable(), @DomName('XMLHttpRequest.responseXML'), read-only
status int

The HTTP result code from the request (200, 404, etc). See also: HTTP Status Codes

@DocsEditable(), @DomName('XMLHttpRequest.status'), read-only
statusText String

The request response string (such as "200 OK"). See also: HTTP Status Codes

@DocsEditable(), @DomName('XMLHttpRequest.statusText'), read-only
timeout int

Length of time in milliseconds before a request is automatically terminated.

@DocsEditable(), @DomName('XMLHttpRequest.timeout'), @Experimental(), read / write
upload HttpRequestUpload

EventTarget that can hold listeners to track the progress of the request. The events fired will be members of HttpRequestUploadEvents.

@DocsEditable(), @DomName('XMLHttpRequest.upload'), @Unstable(), read-only
withCredentials bool

True if cross-site requests should use credentials such as cookies or authorization headers; false otherwise.

@DocsEditable(), @DomName('XMLHttpRequest.withCredentials'), read / write
hashCode int

read-only, inherited
on Events

This is an ease-of-use accessor for event streams which should only be used when an explicit accessor is not available.

read-only, inherited
onAbort Stream<ProgressEvent>

Stream of abort events handled by this HttpRequestEventTarget.

@DocsEditable(), @DomName('XMLHttpRequestEventTarget.onabort'), @Experimental(), read-only, inherited
onError Stream<ProgressEvent>

Stream of error events handled by this HttpRequestEventTarget.

@DocsEditable(), @DomName('XMLHttpRequestEventTarget.onerror'), @Experimental(), read-only, inherited
onLoad Stream<ProgressEvent>

Stream of load events handled by this HttpRequestEventTarget.

@DocsEditable(), @DomName('XMLHttpRequestEventTarget.onload'), @Experimental(), read-only, inherited
onLoadEnd Stream<ProgressEvent>

Stream of loadend events handled by this HttpRequestEventTarget.

@DocsEditable(), @DomName('XMLHttpRequestEventTarget.onloadend'), @Experimental(), @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.IE, '10'), @SupportedBrowser(SupportedBrowser.SAFARI), read-only, inherited
onLoadStart Stream<ProgressEvent>

Stream of loadstart events handled by this HttpRequestEventTarget.

@DocsEditable(), @DomName('XMLHttpRequestEventTarget.onloadstart'), @Experimental(), read-only, inherited
onProgress Stream<ProgressEvent>

Stream of progress events handled by this HttpRequestEventTarget.

@DocsEditable(), @DomName('XMLHttpRequestEventTarget.onprogress'), @Experimental(), @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.IE, '10'), @SupportedBrowser(SupportedBrowser.SAFARI), read-only, inherited
onTimeout Stream<ProgressEvent>

Stream of timeout events handled by this HttpRequestEventTarget.

@DocsEditable(), @DomName('XMLHttpRequestEventTarget.ontimeout'), @Experimental(), read-only, inherited
runtimeType Type

A representation of the runtime type of the object.

read-only, inherited

Operators

operator ==(other) bool

The equality operator.

inherited

Methods

abort() → void

Stop the current request.

@DocsEditable(), @DomName('XMLHttpRequest.abort')
getAllResponseHeaders() String

Retrieve all the response headers from a request.

@DocsEditable(), @DomName('XMLHttpRequest.getAllResponseHeaders'), @Unstable()
getResponseHeader(String name) String

Return the response header named header, or null if not found.

@DocsEditable(), @DomName('XMLHttpRequest.getResponseHeader'), @Unstable()
open(String method, String url, { bool async, String user, String password }) → void

Specify the desired url, and method to use in making the request.

@DocsEditable(), @DomName('XMLHttpRequest.open')
overrideMimeType(String mime) → void

Specify a particular MIME type (such as text/xml) desired for the response.

@DocsEditable(), @DomName('XMLHttpRequest.overrideMimeType'), @SupportedBrowser(SupportedBrowser.CHROME), @SupportedBrowser(SupportedBrowser.FIREFOX), @SupportedBrowser(SupportedBrowser.SAFARI)
send([body_OR_data ]) → void

setRequestHeader(String name, String value) → void

Sets the value of an HTTP request header.

@DocsEditable(), @DomName('XMLHttpRequest.setRequestHeader')
addEventListener(String type, EventListener listener, [ bool useCapture ]) → void

inherited
dispatchEvent(Event event) bool

@DocsEditable(), @DomName('EventTarget.dispatchEvent'), inherited
noSuchMethod(Invocation invocation) → dynamic

Invoked when a non-existent method or property is accessed.

inherited
removeEventListener(String type, EventListener listener, [ bool useCapture ]) → void

inherited
toString() String

Returns the result of the JavaScript objects toString method.

inherited