Skip to content

configureRequest() ​

configureRequest(defaults: RequestDefaults): void 配置默认实例的全局默认配置(baseURL / timeout / header / validateStatus),App 内通常只在启动时调用一次。

uts
import { configureRequest } from '@/uni_modules/ux-request'

const header: UTSJSONObject = {}
header['x-app'] = 'demo'

configureRequest({
	baseURL: 'https://api.example.com',
	timeout: 15000,
	header: header,
	validateStatus: null
})

只作用于默认实例

configureRequest 写入的是默认实例(request() 等顶层 API)的 defaults。createRequest() 创建的实例不受影响——它们用 instance.setConfig 修改各自的 defaults,见 Request 实例。

参数 ​

configureRequest(defaults: RequestDefaults)

参数类型说明
defaultsRequestDefaults全局默认配置,四个字段均为必填位置、可传 null

null 字段语义:字段为 null 表示沿用内置默认——

字段null 时的内置默认
baseURL无(相对路径请求将 fail-fast ERR_CONFIG)
timeout60000(入口常量 DEFAULT_TIMEOUT)
header空(不附加任何默认 header)
validateStatus2xx 校验(statusCode >= 200 && statusCode < 300)

合并层级

实际生效顺序为三级合并:内置默认 < configureRequest 默认 < 请求级 RequestConfig。标量字段请求级有值即覆盖;header 浅合并(请求级同名键覆盖默认键);validateStatus 整体覆盖不合并。详见 RequestConfig 与 请求配置。

返回值 ​

void。修改即时生效于后续请求,不作用于已在途的请求。

示例 ​

App.uvue onLaunch 配置全局 baseURL 与默认 header:

uts
// App.uvue
import { configureRequest } from '@/uni_modules/ux-request'

export class App implements IApp {
	onLaunch(): void {
		const header: UTSJSONObject = {}
		header['x-client'] = 'uni-app-x'
		configureRequest({
			baseURL: 'https://api.example.com',
			timeout: 15000,
			header: header,
			validateStatus: null
		})
	}
}

此后默认实例上的相对路径请求都会走该 baseURL,并自动携带默认 header(请求级同名键可覆盖):

uts
import { get } from '@/uni_modules/ux-request'

get<UTSJSONObject>('/api/health', null).then((res) => {
	// res.config.header 同时含 x-client 与请求级 header
})

相关 API ​

Released under the MIT License.