なぜかCORS対策をしようとしてNuxt.js+axiosでproxyがうまく動かないあなたへ
公式マニュアルをみたけど動かない。参考サイトを漁ったけど、うまく動かない。そんな状態に2日連続陥ったので、うまく行った方法を記載する。
バージョン
Nuxt.js: 1.17.3
@nuxtjs/axios: 5.12.2
@nuxtjs/proxy: 1.4.1
nuxt.config.js
modules: [
'@nuxtjs/proxy',
'@nuxtjs/axios',
],
proxy: {
'/api': {
target: 'APIのURL',
pathRewrite: {
'^/api': '',
},
},
},
axios: {
prefix: '/api',
// proxy: true は入れてはいけない
},
注意点はいくつかある。一つは、「proxy -> axios」の順序に設定すること。次に、axiosには「prefix」を設定すること。prefixでつけたものは、proxy内のpathRewriteで消して送るため、あまり影響はない。必要なさそうだけど、上記設定をしないとうまく行かない場合があった。最後に、axiosの設定で「proxy: true」の設定をいれないこと。これはおそらくNuxt.jsの古いバージョンでは@nuxtjs/proxyが標準でなかったからかもしれないが、紹介サイトでは使うように紹介しているところがあった。
実際の使用方法
this.$axios.post('/login/token', {params}).then((res) => {
console.log(res)
}).catch((error) => {
console.log(error)
})
axiosのAPIのURLにはドメインを省いたものを指定する。すると下の図のようになる。

ディスカッション
コメント一覧
まだ、コメントがありません