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 url: string = getResponseURL(_xhr);
|
||||
|
||||
// IE 9 does not provide the way to get URL of response
|
||||
const url = getResponseURL(_xhr) || req.url;
|
||||
const statusText: string = _xhr.statusText || 'OK';
|
||||
|
||||
let responseOptions = new ResponseOptions({body, status, headers, statusText, url});
|
||||
|
|
|
@ -639,6 +639,21 @@ Connection: keep-alive`;
|
|||
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',
|
||||
inject([AsyncTestCompleter], (async: AsyncTestCompleter) => {
|
||||
const statusText = 'test';
|
||||
|
|
Loading…
Reference in New Issue