File tree Expand file tree Collapse file tree 1 file changed +26
-3
lines changed
Expand file tree Collapse file tree 1 file changed +26
-3
lines changed Original file line number Diff line number Diff line change @@ -378,8 +378,28 @@ exports.XMLHttpRequest = function() {
378378 self . dispatchEvent ( "readystatechange" ) ;
379379
380380 // Create the request
381- request = doRequest ( options , function ( resp ) {
381+
382+ function responseHandler ( resp ) {
383+
382384 response = resp ;
385+
386+ if ( response . statusCode === 302 ) {
387+ settings . url = response . headers [ 'location' ]
388+ var url = Url . parse ( settings . url ) ;
389+ host = url . hostname
390+ var newOptions = {
391+ hostname : url . hostname ,
392+ port : url . port ,
393+ path : url . path ,
394+ method : settings . method ,
395+ headers : headers
396+ }
397+
398+ request = doRequest ( newOptions , responseHandler ) . on ( 'error' , errorHandler ) ;
399+ request . end ( )
400+ return
401+ }
402+
383403 response . setEncoding ( "utf8" ) ;
384404
385405 setState ( self . HEADERS_RECEIVED ) ;
@@ -407,9 +427,12 @@ exports.XMLHttpRequest = function() {
407427 response . on ( 'error' , function ( error ) {
408428 self . handleError ( error ) ;
409429 } ) ;
410- } ) . on ( 'error' , function ( error ) {
430+ }
431+ function errorHandler ( error ) {
411432 self . handleError ( error ) ;
412- } ) ;
433+ }
434+
435+ request = doRequest ( options , responseHandler ) . on ( 'error' , errorHandler ) ;
413436
414437 // Node 0.4 and later won't accept empty data. Make sure it's needed.
415438 if ( data ) {
You can’t perform that action at this time.
0 commit comments