interface XMLHttpRequestEventTarget : EventTarget { // event handler attributes attribute EventListener onabort; attribute EventListener onerror; attribute EventListener onload; attribute EventListener onloadstart; attribute EventListener onprogress; }; interface XMLHttpRequestUpload : XMLHttpRequestEventTarget { // for future use }; [Constructor] interface XMLHttpRequest : XMLHttpRequestEventTarget { // event handler attributes attribute EventListener onreadystatechange; // ready states const unsigned short UNSENT = 0; const unsigned short OPENED = 1; const unsigned short HEADERS_RECEIVED = 2; const unsigned short LOADING = 3; const unsigned short DONE = 4; readonly attribute unsigned short readyState; // request metadata attribute boolean withCredentials; void open(in DOMString method, in DOMString url); void open(in DOMString method, in DOMString url, in boolean async); void open(in DOMString method, in DOMString url, in boolean async, [Null=Null, Undefined=Null] in DOMString user); void open(in DOMString method, in DOMString url, in boolean async, [Null=Null, Undefined=Null] in DOMString user, [Null=Null, Undefined=Null] in DOMString password); void setRequestHeader(in DOMString header, in DOMString value); // request readonly attribute XMLHttpRequestUpload upload; void send(); void send(in ByteArray data); void send([Null=Null, Undefined=Null] in DOMString data); void send(in Document data); void abort(); // response metadata DOMString getAllResponseHeaders(); DOMString getResponseHeader(in DOMString header); readonly attribute unsigned short status; readonly attribute DOMString statusText; // response body void overrideMimeType(in DOMString mime); readonly attribute ByteArray responseBody; readonly attribute DOMString responseText; readonly attribute Document responseXML; };