@@ -48,6 +48,7 @@ interface Params {
4848 _RenderResponseItems : any ;
4949 _Select : any ;
5050 _Url : any ;
51+ _RequestError : any ;
5152
5253 // Internal item
5354 $AjaxTimer : number ;
@@ -222,7 +223,8 @@ class AutoComplete {
222223 function ( response : string ) {
223224 this . _Render ( this . _Post ( response ) ) ;
224225 this . _Open ( ) ;
225- } . bind ( this )
226+ } . bind ( this ) ,
227+ this . _RequestError
226228 ) ;
227229 }
228230 } ,
@@ -494,6 +496,11 @@ class AutoComplete {
494496 }
495497 this . Input . setAttribute ( "data-autocomplete-old-value" , this . Input . value ) ;
496498 } ,
499+ /**
500+ * Handle HTTP error on the request
501+ */
502+ _RequestError : function ( ) : void {
503+ } ,
497504
498505 $AjaxTimer : null ,
499506 $Cache : { } ,
@@ -601,7 +608,7 @@ class AutoComplete {
601608 }
602609 }
603610
604- makeRequest ( params : Params , callback : any ) : XMLHttpRequest {
611+ makeRequest ( params : Params , callback : any , callbackErr : any ) : XMLHttpRequest {
605612 var propertyHttpHeaders : string [ ] = Object . getOwnPropertyNames ( params . HttpHeaders ) ,
606613 request : XMLHttpRequest = new XMLHttpRequest ( ) ,
607614 method : string = params . _HttpMethod ( ) ,
@@ -628,6 +635,9 @@ class AutoComplete {
628635 params . $Cache [ queryParams ] = request . response ;
629636 callback ( request . response ) ;
630637 }
638+ else if ( request . status >= 400 ) {
639+ callbackErr ( ) ;
640+ }
631641 } ;
632642
633643 return request ;
@@ -650,11 +660,11 @@ class AutoComplete {
650660 }
651661 }
652662
653- cache ( params : Params , callback : any ) : void {
663+ cache ( params : Params , callback : any , callbackErr : any ) : void {
654664 var response : string | undefined = params . _Cache ( params . _Pre ( ) ) ;
655665
656666 if ( response === undefined ) {
657- var request : XMLHttpRequest = AutoComplete . prototype . makeRequest ( params , callback ) ;
667+ var request : XMLHttpRequest = AutoComplete . prototype . makeRequest ( params , callback , callbackErr ) ;
658668
659669 AutoComplete . prototype . ajax ( params , request ) ;
660670 } else {
0 commit comments