22 * httpx.js
33 *
44 * @file httpx.js
5- * @version 0.1 .0
5+ * @version 0.2 .0
66 * @description The simple HTTP / RESTful requests library of JavaScript (XHR).
77 * @license MIT License
88 * @author Pandao
99 * {@link https://github.com/pandao/httpx.js}
10- * @updateTime 2015-06-16
10+ * @updateTime 2015-06-17
1111 */
1212
1313( function ( factory ) {
3232 "use strict" ;
3333
3434 var httpx = {
35- version : "0.1 .0" ,
35+ version : "0.2 .0" ,
3636
3737 /**
3838 * Create XHR object
103103
104104 //console.log("settings =>", settings);
105105
106- var urlData = this . urlBuild ( url , data ) ;
106+ var urlData = urlBuild ( url , data ) ;
107107
108108 data = urlData . data ;
109109
114114
115115 var xhr = this . xhr ( ) ;
116116
117- xhr . onreadystatechange = function ( ) {
117+ var readyStateChange = function ( e ) {
118118
119119 if ( xhr . readyState === 4 )
120120 {
139139 }
140140 else
141141 {
142- settings . error . bind ( xhr ) ( method , url ) ;
142+ settings . error . bind ( xhr ) ( method , url , e ) ;
143143 }
144144 }
145-
146- } ;
147-
148- xhr . ontimeout = function ( ) {
149- settings . ontimeout . bind ( xhr ) ( method , url ) ;
150- } ;
151-
152- xhr . onerror = function ( ) {
153- settings . error . bind ( xhr ) ( method , url ) ;
154- } ;
145+ } ;
146+
147+ xhr . addEventListener ( "readystatechange" , readyStateChange ) ;
148+
149+ xhr . addEventListener ( "error" , function ( e ) {
150+ settings . error . bind ( xhr ) ( method , url , e ) ;
151+ } ) ;
152+
153+ xhr . addEventListener ( "timeout" , function ( e ) {
154+ settings . ontimeout . bind ( xhr ) ( method , url , e ) ;
155+ } ) ;
155156
156157 xhr . open ( method , url , true ) ;
157158
284285 * @return {void }
285286 */
286287
287- delete : function ( url , data , callback , error ) {
288+ " delete" : function ( url , data , callback , error ) {
288289 this . exec ( "DELETE" , url , data , callback , error ) ;
289290 } ,
290291
343344 this . json ( url , data , callback , error ) ;
344345 } ,
345346
346- /**
347- * Query url & strings build
348- *
349- * @param {string } url request url
350- * @param {object } data request datas
351- * @return {object }
352- */
353-
354- urlBuild : function ( url , data ) {
355-
356- if ( typeof data === "object" )
357- {
358- var temp = [ ] ;
359-
360- for ( var i in data ) {
361- temp . push ( i + "=" + encodeURIComponent ( data [ i ] ) ) ;
362- }
363-
364- data = temp . join ( "&" ) ;
365- }
366-
367- url = url + ( ( url . indexOf ( "?" ) < 0 ) ? ( ( data === "" || ! data ) ? "" : "?" ) : ( data === "" || ! data ) ? "" : "&" ) + data ;
368-
369- return {
370- url : url ,
371- data : data
372- } ;
373- } ,
374-
375347 /**
376348 * JSONP method
377349 *
393365 data = "" ;
394366 }
395367
396- var urlData = this . urlBuild ( url , data ) ;
368+ var urlData = urlBuild ( url , data ) ;
397369
398370 url = urlData . url ;
399371 data = urlData . data ;
477449 head . appendChild ( script ) ;
478450 }
479451 } ;
452+
453+ /**
454+ * Query url & strings build
455+ *
456+ * @param {string } url request url
457+ * @param {object } data request datas
458+ * @return {object }
459+ */
460+
461+ function urlBuild ( url , data ) {
462+
463+ if ( typeof data === "object" )
464+ {
465+ var temp = [ ] ;
466+
467+ for ( var i in data ) {
468+ temp . push ( i + "=" + encodeURIComponent ( data [ i ] ) ) ;
469+ }
470+
471+ data = temp . join ( "&" ) ;
472+ }
473+
474+ url = url + ( ( url . indexOf ( "?" ) < 0 ) ? ( ( data === "" || ! data ) ? "" : "?" ) : ( data === "" || ! data ) ? "" : "&" ) + data ;
475+
476+ return {
477+ url : url ,
478+ data : data
479+ } ;
480+ } ;
480481
481482 return httpx ;
482483} ) ;
0 commit comments