リクエスト設定
これらは、リクエストを行う際に利用可能な設定オプションです。url
だけが必須です。method
が指定されていない場合、リクエストのデフォルトは GET
です。
{
// `url` はリクエストに使用されるサーバーの URL です。
url: '/user',
// `method` はリクエストを行う際に使用されるリクエストメソッドです。
method: 'get', // default
// `url` が絶対パス指定でない限り、`baseURL` が `url` の前に付加されます。
// Axios のインスタンスに `baseURL` を設定すると、そのインスタンスのメソッドに相対パスで
// URLを渡すことができ、便利です。
baseURL: 'https://some-domain.com/api',
// `transformRequest` は、サーバーに送信される前にリクエスト データを変更できるようにします。
// これはリクエスト メソッドの 'PUT'、'POST'、PATCH'、'DELETE' に対してのみ適用されます。
// 配列の最後の関数は、文字列または Buffer、ArrayBuffer、FormData、Stream のインスタンスを返す必要があります。
// ヘッダー オブジェクトを変更できます。
transformRequest: [function (data, headers) {
// データの変換処理を行います
return data;
}],
// `transformResponse` を使用すると、レスポンス データを変更してから then/catch に渡すことができます。
transformResponse: [function (data) {
// データの変換処理を行います
return data;
}],
// `headers` は送信されるカスタム ヘッダーです。
headers: {'X-Requested-With': 'XMLHttpRequest'},
// `params` は、リクエストとともに送信される URL パラメータです。
// プレーンオブジェクトまたは URLSearchParams オブジェクトである必要があります。
// 注: null または未定義のパラメーターは URL にレンダリングされません。
params: {
ID: 12345
},
// `paramsSerializer` は、 `params` のシリアライズを担当するオプションの関数です。
// (たとえば、https://www.npmjs.com/package/qs、http://api.jquery.com/jquery.param/)
paramsSerializer: function (params) {
return Qs.stringify(params, {arrayFormat: 'brackets'})
},
// `data` はリクエスト ボディとして送信されるデータです。
// リクエスト メソッド 'PUT'、'POST'、'DELETE'、'PATCH' に対してのみ適用可能です。
// `transformRequest` が設定されていない場合は、以下のいずれかの型でなければなりません。
// - string, plain object, ArrayBuffer, ArrayBufferView, URLSearchParams
// - ブラウザのみ: FormData, File, Blob
// - Node.js のみ: Stream, Buffer
data: {
firstName: 'Fred'
},
// ボディにデータを送信するための代替構文
// メソッド ポスト
// キーではなく、値のみが送信されます。
data: 'Country=Brasil&City=Belo Horizonte',
// `timeout`は、リクエストがタイムアウトするまでのミリ秒数を指定します。
// リクエストに`timeout`より長い時間がかかる場合、リクエストは中止されます。
timeout: 1000, // デフォルトは `0` (タイムアウトなし)
// `withCredentials` は、資格情報を使用してクロスサイト アクセスコントロールの
// リクエストを行うかどうかを示します。
withCredentials: false, // デフォルト
// `adapter`を使用すると、リクエストをカスタム処理できるため、テストが簡単になります。
// Promise を返し、有効なレスポンスを提供します (lib/adapters/README.md を参照)。
adapter: function (config) {
/* ... */
},
// `auth` は、HTTP 基本認証を使用する必要があることを示し、資格情報を提供します。
// これにより、 `Authorization` ヘッダーが設定され、`headers` を使用して設定した
// 既存の `Authorization` カスタムヘッダーを上書きします。
// このパラメーターを使用して構成できるのは、HTTP 基本認証のみであることに注意してください。
// Bearer トークンなどの場合は、代わりに `Authorization` カスタム ヘッダーを使用してください。
auth: {
username: 'janedoe',
password: 's00pers3cret'
},
// `responseType` には、以下のようなサーバーがオプションで応答するデータのタイプを指定します。
// 'arraybuffer'、'document'、'json'、'text'、'stream'
// browser のみ: 'blob'
responseType: 'json', // デフォルト
// `responseEncoding` には、レスポンスのデコードで使用するエンコード方法を指定します (Node.js のみ)
// 注: `responseType` が 'stream' の場合、あるいはクライアントサイドのリクエストの場合は無視されます。
responseEncoding: 'utf8', // デフォルト
// `xsrfCookieName` は、xsrf トークンの値として使用する Cookie の名前です。
xsrfCookieName: 'XSRF-TOKEN', // デフォルト
// `xsrfHeaderName` は、xsrf トークン値を格納する http ヘッダーの名前です。
xsrfHeaderName: 'X-XSRF-TOKEN', // デフォルト
// `onUploadProgress` を使用すると、アップロードの進行状況イベントを処理できます。
// ブラウザのみ
onUploadProgress: function (progressEvent) {
// ネイティブの進行状況イベントを処理します
},
// `onDownloadProgress` を使用すると、ダウンロードの進行状況イベントを処理できます。
// ブラウザのみ
onDownloadProgress: function (progressEvent) {
// ネイティブの進行状況イベントを処理します
},
// `maxContentLength` は Node.js で許可される http レスポンスのコンテンツの最大サイズをバイト数で定義します。
maxContentLength: 2000,
// `maxBodyLength` (Node.js のみのオプション) は、http リクエストのコンテンツの最大サイズをバイト数で定義します
maxBodyLength: 2000,
// `validateStatus` は、与えられた HTTP レスポンスのステータスコードに対して、Promise を解決するか拒否するかを定義します。
// `validateStatus` が `true` を返す場合 (または `null` や `undefined` に設定されている場合) Promise は解決されます。
// それ以外の場合は Promise は拒否されます。
validateStatus: function (status) {
return status >= 200 && status < 300; // デフォルト
},
// `maxRedirects` は Node.js でリダイレクトをたどる最大数を定義します。
// 0 に設定すると、リダイレクトは実行されません。
maxRedirects: 5, // デフォルト
// `socketPath` は、Node.js で使用する UNIX ソケットを定義します。
// 例えば '/var/run/docker.sock' を使用して、Docker デーモンにリクエストを送信します。
// 指定できるのは `socketPath` または `proxy` のいずれかのみです。
// 両方を指定すると、`socketPath` が使用されます。
socketPath: null, // デフォルト
// `httpAgent` と `httpsAgent` は、それぞれ Node.js で http と https のリクエストを
// 実行するときに使用するカスタムエージェントを定義します。
// これにより、デフォルトでは有効になっていない `keepAlive` のようなオプションを追加できます。
httpAgent: new http.Agent({ keepAlive: true }),
httpsAgent: new https.Agent({ keepAlive: true }),
// `proxy` は、プロキシサーバーのホスト名、ポート、プロトコルを定義します。
// また、従来の `http_proxy` と `https_proxy` 環境変数を使用して、プロキシを定義することもできます。
// プロキシの設定に環境変数を使用する場合、プロキシを設定しないドメインのカンマ区切りのリストとして
// `no_proxy` 環境変数を定義することもできます。
// 環境変数を無視してプロキシを無効にするには、 `false` を使用します。
// `auth` は、プロキシへの接続に HTTP 基本認証を使用することを示し、認証情報を提供します。
// これにより、`Proxy-Authorization` ヘッダーが設定され、`headers` を使用して設定した既存の
// `Proxy-Authorization` カスタムヘッダーが上書きされます。
// プロキシサーバーが HTTPS を使用する場合は、プロトコルを `https` に設定する必要があります。
proxy: {
protocol: 'https',
host: '127.0.0.1',
port: 9000,
auth: {
username: 'mikeymike',
password: 'rapunz3l'
}
},
// `cancelToken` には、リクエストをキャンセルするために使用するキャンセル トークンを指定します
// (詳細は後述のキャンセルのセクションを参照してください)。
cancelToken: new CancelToken(function (cancel) {
}),
// `decompress` は、レスポンス ボディを自動的に解凍するかどうかを示します。
// `true` に設定すると、すべての解凍されたレスポンスのレスポンス オブジェクトから
// 'content-encoding' ヘッダーも削除されます。
// - ノードのみ (XHR は解凍をオフにできません)
decompress: true // デフォルト
}