@nuxtjs/axiosを使っているのですが、httpsAgentをnuxt.config.jsなどで共通設定する方法はないでしょうか?
apiエンドポイントなど、なるべく共通設定できるところは1箇所で定義しておきたいので現在の設定です。
- nuxt.config.js
module.exports = { // 省略 modules: [ '@nuxtjs/axios', ], axios: { browserBaseURL: envSet.apiBaseUrl.client, baseURL: envSet.apiBaseUrl.express, }, // 省略 }
- pages/index.vue
export default { asyncData({ $axios }) { console.log($axios.defaults) // エンドポイント確保されてるか確認。 return $axios.get('/test') .then((res) => { console.log(res.data) return res.data }) }, }
このままだとself signed certificate
というエラーがでるので、本番環境以外ではSSL証明書の検証を無視させます。
- pages/index.vue
import https from 'https' export default { asyncData({ $axios }) { console.log($axios.defaults) // エンドポイント確保されてるか確認。 const agent = new https.Agent({ rejectUnauthorized: false }); return $axios.get('/test', { httpsAgent: agent }) .then((res) => { console.log(res.data) return res.data }) }, }
これでエラーは全てなくなりましたが、ajax通信実行箇所ごとに{ httpsAgent: agent }を記述していくのは現実的ではないと思っています。
なので、以下のようにやってみましたが、有効になっていないようです。
- nuxt.config.js
import https from 'https' module.exports = { // 省略 modules: [ '@nuxtjs/axios', ], axios: { browserBaseURL: envSet.apiBaseUrl.client, baseURL: envSet.apiBaseUrl.express, httpsAgent: new https.Agent({ rejectUnauthorized: false }) }, // 省略 }
何か方法はないでしょうか?
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。