https://axios.nuxtjs.org/
基本的な設定は上記URLの通り。
## $axiosがvueファイル以外で認識しない
[nuxt-tsのドキュメントに書かれたヒント](
https://typescript.nuxtjs.org/ja/cookbook/store/#%E3%82%AF%E3%83%A9%E3%82%B9%E3%83%99%E3%83%BC%E3%82%B9)に従って設定する。
`utils/api.ts`
```ts
import { NuxtAxiosInstance } from '@nuxtjs/axios'
let $axios: NuxtAxiosInstance
export function initializeAxios(axiosInstance: NuxtAxiosInstance) {
$axios = axiosInstance
}
export { $axios }
```
`axios-accessor.ts`
```ts
import { Plugin } from '@nuxt/types'
import { initializeAxios } from '~/utils/api'
const accessor: Plugin = ({ $axios }) => {
initializeAxios($axios)
}
export default accessor
```
`nuxt.js`
```js
plugins: [
{ src: '~/plugins/axios-accessor.ts' },
],
```
## CORS問題
`nuxt.js`にproxy設定を追加することで[[CORS]]を回避する。
```json
axios: {
proxy: true,
},
proxy: {
// http://localhost:3000/apiではじまるAPIは https://cross-origin-path/api.. へproxy
'/api': {
target: 'https://cross-origin-path',
},
},
```