Support responseType property on XMLHttpRequest.

Only default, "" and "text" supported for now. Raising an error otherwise.
This commit is contained in:
Hristo Deshev
2015-06-15 15:25:43 +03:00
parent f109cbe80b
commit 51a56a2aea
3 changed files with 27 additions and 0 deletions

View File

@ -616,3 +616,16 @@ export function test_raises_onerror_Event(done) {
xhr.open("GET", "https://no-such-domain-httpbin.org");
xhr.send();
}
export function test_responseType(done) {
let xhr = new XMLHttpRequest();
xhr.responseType = "";
xhr.responseType = "text";
TKUnit.assertThrows(
() => xhr.responseType = "json",
"Didn't raise on unsupported type.",
"Response type of 'json' not supported."
);
done(null);
}

1
declarations.d.ts vendored
View File

@ -37,6 +37,7 @@ declare class XMLHttpRequest {
overrideMimeType(mime: string): void;
readyState: number;
responseText: string;
responseType: string;
status: number;
onload: () => void;

View File

@ -49,6 +49,7 @@ export class XMLHttpRequest {
private _responseText: string = "";
private _headers: any;
private _errorFlag: boolean;
private _responseType: string;
public onreadystatechange: Function;
@ -163,6 +164,18 @@ export class XMLHttpRequest {
return this._readyState;
}
public get responseType(): string {
return this._responseType;
}
public set responseType(value: string) {
if (value === "" || value === "text") {
this._responseType = value;
} else {
throw new Error(`Response type of '${value}' not supported.`);
}
}
private _setReadyState(value: number) {
if (this._readyState !== value) {
this._readyState = value;