fix(fetch): fallback to given URL if baseURL is invalid (#32911)
This commit is contained in:
parent
c84305ed73
commit
daac0ddd24
|
|
@ -25,7 +25,7 @@ import zlib from 'zlib';
|
||||||
import type { HTTPCredentials } from '../../types/types';
|
import type { HTTPCredentials } from '../../types/types';
|
||||||
import { TimeoutSettings } from '../common/timeoutSettings';
|
import { TimeoutSettings } from '../common/timeoutSettings';
|
||||||
import { getUserAgent } from '../utils/userAgent';
|
import { getUserAgent } from '../utils/userAgent';
|
||||||
import { assert, createGuid, monotonicTime } from '../utils';
|
import { assert, constructURLBasedOnBaseURL, createGuid, monotonicTime } from '../utils';
|
||||||
import { HttpsProxyAgent, SocksProxyAgent } from '../utilsBundle';
|
import { HttpsProxyAgent, SocksProxyAgent } from '../utilsBundle';
|
||||||
import { BrowserContext, verifyClientCertificates } from './browserContext';
|
import { BrowserContext, verifyClientCertificates } from './browserContext';
|
||||||
import { CookieStore, domainMatches, parseRawCookie } from './cookieStore';
|
import { CookieStore, domainMatches, parseRawCookie } from './cookieStore';
|
||||||
|
|
@ -159,7 +159,7 @@ export abstract class APIRequestContext extends SdkObject {
|
||||||
setHeader(headers, name, value);
|
setHeader(headers, name, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
const requestUrl = new URL(params.url, defaults.baseURL);
|
const requestUrl = new URL(constructURLBasedOnBaseURL(defaults.baseURL, params.url));
|
||||||
if (params.encodedParams) {
|
if (params.encodedParams) {
|
||||||
requestUrl.search = params.encodedParams;
|
requestUrl.search = params.encodedParams;
|
||||||
} else if (params.params) {
|
} else if (params.params) {
|
||||||
|
|
|
||||||
|
|
@ -220,6 +220,13 @@ it('should resolve url relative to global baseURL option', async ({ playwright,
|
||||||
await request.dispose();
|
await request.dispose();
|
||||||
});
|
});
|
||||||
|
|
||||||
|
it('should fallback to given URL if baseURL is bogus', async ({ playwright, server }) => {
|
||||||
|
const request = await playwright.request.newContext({ baseURL: 'bogus' });
|
||||||
|
const response = await request.get(server.PREFIX + '/empty.html');
|
||||||
|
expect(response.url()).toBe(server.EMPTY_PAGE);
|
||||||
|
await request.dispose();
|
||||||
|
});
|
||||||
|
|
||||||
it('should set playwright as user-agent', async ({ playwright, server, isWindows, isLinux, isMac }) => {
|
it('should set playwright as user-agent', async ({ playwright, server, isWindows, isLinux, isMac }) => {
|
||||||
const request = await playwright.request.newContext();
|
const request = await playwright.request.newContext();
|
||||||
const [serverRequest] = await Promise.all([
|
const [serverRequest] = await Promise.all([
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue