質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

Q&A

解決済

2回答

789閲覧

Nuxt.jsでaxiosを使用したAPI通信ができない

tsyu.sa068

総合スコア5

Nuxt.js

Nuxt.jsは、ユニバーサルなSPAが開発可能なVue.jsベースのフレームワーク。UIの描画サポートに特化しており、SSRにおけるサーバーサイドとクライアントサイドのUIレンダリングなどさまざまな機能を持ちます。

CORS

CORSとはCross-Origin Resource Sharingの頭文字をとったもので、ブラウザがオリジン以外のサーバからデータを取得するシステムのことです。

0グッド

0クリップ

投稿2019/11/06 02:59

前提・実現したいこと

Nuxt.jsでaxiosを使用して外部APIからデータを取得したいのですが、CORSエラーが発生しました、
以下の記事を参考にCORSエラーを解決しようとしましたが、別のエラー(後述)がでてしまいまし。
https://qiita.com/penton310/items/4312ddbe015476fd67ff
https://qiita.com/naokada/items/394c1d85ad2975ba62f0

発生している問題・エラーメッセージ

TypeError: Cannot read property 'setToken' of undefined at eval (axios.js?dcce:4) at _callee2$ (index.js?f26e:46) at tryCatch (runtime.js?96cf:45) at Generator.invoke [as _invoke] (runtime.js?96cf:271) at Generator.prototype.<computed> [as next] (runtime.js?96cf:97) at asyncGeneratorStep (asyncToGenerator.js?1da1:3) at _next (asyncToGenerator.js?1da1:25)

該当のソースコード

nuxt.config.js

... plugins: [ '~/plugins/axios' ], ... axios: { proxy: true }, proxy: { '/api/': {target: 'API_URL', pathRewrite: {'^/api/': '/'}} },

※API_URLには実行したいURLを直打ちしています

plugins/axios.js

export default function({ $axios, redirect }) { console.log($axios); $axios.setToken('access_token'); $axios.onResponse(config => { $axios.setHeader('Access-Control-Allow-Origin', '*') }) }

試したこと

plugins/axios.jsの引数となっている$axiosがundefinedだったので指定されていないようです。
しかし、この関数がどこで呼ばれているかはわかりませんでした。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

this.$axiosで動きませんか?

投稿2019/11/06 04:55

KaiShoya

総合スコア551

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tsyu.sa068

2019/11/06 05:03 編集

回答ありがとうございます! %axiosをthis.$axiosにしたところ、別のエラーになりました。 TypeError: Cannot read property '$axios' of undefined at eval (axios.js?dcce:5) at _callee2$ (index.js?f26e:46) at tryCatch (runtime.js?96cf:45) at Generator.invoke [as _invoke] (runtime.js?96cf:271) at Generator.prototype.<computed> [as next] (runtime.js?96cf:97) at asyncGeneratorStep (asyncToGenerator.js?1da1:3) at _next (asyncToGenerator.js?1da1:25)
guest

0

ベストアンサー

Context に $axios を挿入するのは、通常は Axios Module が行うと思うので、Axios Moduleのセットアップができていないのではないでしょうか。

投稿2019/11/06 04:53

aaharu

総合スコア441

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tsyu.sa068

2019/11/06 05:04 編集

回答ありがとうございます! nuxt.config.js modules: [ '@nuxtjs/axios', ], を追記したところ、以下のエラーが発生し落ちました。 ╭─────────────────────────────────────────────────────────────────────────────╮ │ │ │ ✖ Nuxt Fatal Error │ │ │ │ Error: Cannot find module '@nuxtjs/axios' │ │ Require stack: │ │ - C:\sustain\slack-interface\node_modules\@nuxt\core\dist\core.js │ │ - C:\sustain\slack-interface\node_modules\@nuxt\cli\dist\cli-command.js │ │ - C:\sustain\slack-interface\node_modules\@nuxt\cli\dist\cli.js │ │ - C:\sustain\slack-interface\node_modules\nuxt\bin\nuxt.js │ │ │ ╰─────────────────────────────────────────────────────────────────────────────╯ package.jsonでみると、axiosはインストールできているように見えます。 "dependencies": { "axios": "^0.19.0", },
tsyu.sa068

2019/11/06 05:11 編集

失礼いたしました。axiosのみをインストールしていたみたいです。 @nuxtjs/axiosをインストールしてみます。
tsyu.sa068

2019/11/06 05:23

@nuxtjs/axiosをインストールしたところ、無事起動しました! ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問