API Reference

Note

When a method resolves instead of returns the method is async and returns a Promise

Options

You can pass options using module options or http section in nuxt.config.js

{
  http: {
    // HTTP options here
  }
}

prefix

host

port

This options are used for default values of baseURL and browserBaseURL.

Can be customized with API_PREFIX, API_HOST (or HOST) and API_PORT (or PORT) environment variables.

Default value of prefix is /.

baseURL

  • Default: http://[HOST]:[PORT][PREFIX]

Base URL which is used and prepended to make requests in server side.

Environment variable API_URL can be used to override baseURL.

Note

baseURL and proxy won't work together, you will need to use prefix instead

browserBaseURL

  • Default: baseURL (or prefix when options.proxy is enabled)

Base URL which is used and prepended to make requests in client side.

Environment variable API_URL_BROWSER can be used to override browserBaseURL.

https

  • Default: false

If set to true, http:// in both baseURL and browserBaseURL will be changed into https://.

proxy

  • Default: false

You can easily integrate HTTP with Proxy Module and is much recommended to prevent CORS and deployment problems.

nuxt.config.js

{
  modules: [
    '@nuxt/http'
  ],

  http: {
    proxy: true // Can be also an object with default options
  },

  proxy: {
    '/api/': 'http://api.example.com',
    '/api2/': 'http://api.another-website.com'
  }
}

Note

It is not required to manually register @nuxtjs/proxy module, but it does need to be in your dependencies

Note

/api/ will be added to all requests to the API end point. If you need to remove it use pathRewrite:

proxy: {
  '/api/': {
    target: 'http://api.example.com',
    pathRewrite: { '^/api/': '' }
  }
}

retry

  • Default: false

Automatically intercept failed requests and retry before failing.

By default, number of retries will be 2 times, if retry value is set to true. You can change it by passing an object like this:

http: {
  retry: 1
}

serverTimeout

  • Default: false

Sets the timeout for the server requests in milliseconds.

http: {
  serverTimeout: 2000
}

clientTimeout

  • Default: false

Sets the timeout for the client requests in milliseconds.

http: {
  clientTimeout: 5000
}

proxyHeaders

  • Default: true

In SSR context, sets client request header as http default request headers. This is useful for making requests which need cookie based auth on server side. Also helps making consistent requests in both SSR and Client Side code.

Note

When directing requests at a url protected by CloudFlare's CDN you should set this to false to prevent CloudFlare from mistakenly detecting a reverse proxy loop and returning a 403 error

proxyHeadersIgnore

  • Default ['accept', 'host', 'cf-ray', 'cf-connecting-ip', 'content-length']

Only efficient when proxyHeaders is set to true. Removes unwanted request headers to the API backend in SSR.

Methods

setHeader

  • arguments: (name, value)

Globally set a header to all subsequent requests

See here for usage info

setToken

  • arguments: (token, type)

Globally set a Authorization header for all subsequent requests

See here for usage info

Hooks

The arguments listed below are those your hook will receive when it's called

onRequest

  • arguments: (config)

See here for usage info

onResponse

  • arguments: (response)

See here for usage info

onError

  • arguments: (error)

If the error originated from a request, the property err.response might be available

See here for usage info

HTTP Methods

Usage

See here for usage information for below methods

delete

get

  • arguments: (url, options?)
  • resolves: Response
  • rejects: Error

These methods corresponds to the similar named HTTP/1.1 methods

patch

post

put

  • arguments: (url, body?, options?)
  • resolves: Response
  • rejects: Error

These methods corresponds to the similar named HTTP/1.1 methods

$delete

$get

$head

  • arguments: (url, options?)
  • resolves: JSON
  • rejects: Error

These $-prefixed convenience methods always return the requested content as JSON

$patch

$post

$put

  • arguments: (url, body?, options?)
  • resolves: JSON
  • rejects: Error

These $-prefixed convenience methods always return the requested content as JSON