fix(http): return request url if it cannot be retrieved from response
closes #12837
This commit is contained in:
		
							parent
							
								
									a0c58a6b5c
								
							
						
					
					
						commit
						1d53a870dd
					
				| @ -75,9 +75,8 @@ export class XHRConnection implements Connection { | |||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         const headers: Headers = Headers.fromResponseHeaderString(_xhr.getAllResponseHeaders()); |         const headers: Headers = Headers.fromResponseHeaderString(_xhr.getAllResponseHeaders()); | ||||||
| 
 |         // IE 9 does not provide the way to get URL of response
 | ||||||
|         const url: string = getResponseURL(_xhr); |         const url = getResponseURL(_xhr) || req.url; | ||||||
| 
 |  | ||||||
|         const statusText: string = _xhr.statusText || 'OK'; |         const statusText: string = _xhr.statusText || 'OK'; | ||||||
| 
 | 
 | ||||||
|         let responseOptions = new ResponseOptions({body, status, headers, statusText, url}); |         let responseOptions = new ResponseOptions({body, status, headers, statusText, url}); | ||||||
|  | |||||||
| @ -639,6 +639,21 @@ Connection: keep-alive`; | |||||||
|            existingXHRs[0].dispatchEvent('load'); |            existingXHRs[0].dispatchEvent('load'); | ||||||
|          })); |          })); | ||||||
| 
 | 
 | ||||||
|  |       it('should return request url if it cannot be retrieved from response', | ||||||
|  |          inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { | ||||||
|  |            const statusCode = 200; | ||||||
|  |            const connection = new XHRConnection( | ||||||
|  |                sampleRequest, new MockBrowserXHR(), new ResponseOptions({status: statusCode})); | ||||||
|  | 
 | ||||||
|  |            connection.response.subscribe((res: Response) => { | ||||||
|  |              expect(res.url).toEqual('https://google.com'); | ||||||
|  |              async.done(); | ||||||
|  |            }); | ||||||
|  | 
 | ||||||
|  |            existingXHRs[0].setStatusCode(statusCode); | ||||||
|  |            existingXHRs[0].dispatchEvent('load'); | ||||||
|  |          })); | ||||||
|  | 
 | ||||||
|       it('should set the status text property from the XMLHttpRequest instance if present', |       it('should set the status text property from the XMLHttpRequest instance if present', | ||||||
|          inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { |          inject([AsyncTestCompleter], (async: AsyncTestCompleter) => { | ||||||
|            const statusText = 'test'; |            const statusText = 'test'; | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user