Axios 实例

创建实例

¥Creating an instance

你可以使用自定义配置创建一个新的 axios 实例。

¥You can create a new instance of axios with a custom config.

axios.create([config])
const instance = axios.create({
  baseURL: 'https://some-domain.com/api/',
  timeout: 1000,
  headers: {'X-Custom-Header': 'foobar'}
});

实例方法

¥Instance methods

下面列出了可用的实例方法。指定的配置将与实例配置合并。

¥The available instance methods are listed below. The specified config will be merged with the instance config.

axios#request(config)
axios#get(url[, config])
axios#delete(url[, config])
axios#head(url[, config])
axios#options(url[, config])
axios#post(url[, data[, config]])
axios#put(url[, data[, config]])
axios#patch(url[, data[, config]])
axios#getUri([config])

使用配置对象调用实例

¥Calling the instance with a config object

除了使用像 instance.get()instance.post() 这样的便捷方法外,你还可以使用配置对象直接调用 Axios 实例。这在功能上等同于 axios(config),在使用原始配置重试请求时尤其有用。

¥In addition to using convenience methods like instance.get() or instance.post(), you can also call an Axios instance directly with a config object. This is functionally equivalent to axios(config), and is particularly useful when retrying a request using the original configuration.

const instance = axios.create({ baseURL: '/api' });

// Works just like axios(config)
instance({
  url: '/users',
  method: 'get'
});

此方法在处理身份验证错误时启用清晰的重试逻辑:

¥This approach enables clean retry logic when handling authentication errors:

instance.interceptors.response.use(undefined, async (error) => {
  if (error.response?.status === 401) {
    await refreshToken();
    return instance(error.config); // Retry original request
  }

  throw error;
});