Skip to content

Commit 18b3fee

Browse files
Merge pull request #52 from 1u0n/2.6
added _RequestError to handle HTTP errors
2 parents c2bb2a5 + 4f04fc0 commit 18b3fee

File tree

1 file changed

+14
-4
lines changed

1 file changed

+14
-4
lines changed

src/autocomplete.ts

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ interface Params {
4848
_RenderResponseItems: any;
4949
_Select: any;
5050
_Url: any;
51+
_Error: any;
5152

5253
// Internal item
5354
$AjaxTimer: number;
@@ -221,7 +222,8 @@ class AutoComplete {
221222
function(response: string) {
222223
this._Render(this._Post(response));
223224
this._Open();
224-
}.bind(this)
225+
}.bind(this),
226+
this._Error
225227
);
226228
}
227229
},
@@ -493,6 +495,11 @@ class AutoComplete {
493495
}
494496
this.Input.setAttribute("data-autocomplete-old-value", this.Input.value);
495497
},
498+
/**
499+
* Handle HTTP error on the request
500+
*/
501+
_Error: function(): void {
502+
},
496503

497504
$AjaxTimer: null,
498505
$Cache: {},
@@ -600,7 +607,7 @@ class AutoComplete {
600607
}
601608
}
602609

603-
makeRequest(params: Params, callback: any): XMLHttpRequest {
610+
makeRequest(params: Params, callback: any, callbackErr: any): XMLHttpRequest {
604611
var propertyHttpHeaders: string[] = Object.getOwnPropertyNames(params.HttpHeaders),
605612
request: XMLHttpRequest = new XMLHttpRequest(),
606613
method: string = params._HttpMethod(),
@@ -627,6 +634,9 @@ class AutoComplete {
627634
params.$Cache[queryParams] = request.response;
628635
callback(request.response);
629636
}
637+
else if (request.status >= 400) {
638+
callbackErr();
639+
}
630640
};
631641

632642
return request;
@@ -649,11 +659,11 @@ class AutoComplete {
649659
}
650660
}
651661

652-
cache(params: Params, callback: any): void {
662+
cache(params: Params, callback: any, callbackErr: any): void {
653663
var response: string|undefined = params._Cache(params._Pre());
654664

655665
if (response === undefined) {
656-
var request: XMLHttpRequest = AutoComplete.prototype.makeRequest(params, callback);
666+
var request: XMLHttpRequest = AutoComplete.prototype.makeRequest(params, callback, callbackErr);
657667

658668
AutoComplete.prototype.ajax(params, request);
659669
} else {

0 commit comments

Comments
 (0)