Vue
1<template> 2 <div> 3 <button v-on:click="call_api()">表示する</button> 4 {{ info }} 5 </div> 6</template> 7 8<script> 9import axios from 'axios'; 10 11export default { 12 name: 'Test', 13 data () { 14 return{ 15 info: null, 16 } 17}, 18 19 methods:{ 20 call_api: function() { 21 axios.get("/services/search/api/v1?OPERATION-NAME=findItemsByKeywords&keywords=baseball") 22 .then(response => (this.info = response.data)) 23 } 24 25 } 26} 27</script>
vue.config.js
1module.exports = { 2 devServer: { 3 proxy: "http://api.**.com" 4 } 5 };
実現したいこと
Vue CLI(axios)+Netlifyを使い、さらにauth0も導入しているものにログインし、ログインした状態で外部APIを利用したい
問題点等
Vue CLI(axios,netlify)を使い、auth0からログインして、外部APIからデータを取得しようとすると、Google Chromeデベロッパーツールでエラーが表示されてしまいます。
が、
http://***.netlify.app(netlifyのドメイン)
と表示されています。
###補足
VueCLIにAuth0を組み込みを行う際は、リダイレクト認証させてます。
「npm install @auth0/auth0-spa-js」で、SDKのインストールを行っています。
こちらの記事を参考にしてます。
https://blog.serverworks.co.jp/vue-autho-authentification
試したこと
調べてみると、Netlifyでは、WebサーバーのProxyが使えないので、Netlifyのrewrite機能を使って対処するといった記事を見つけて、Vue CLIで作成したアプリ内の「public」の「_redirects」のフォルダを作り、「netlify.toml」というファイルを作成して、デプロイしてみましたが、rewrite機能が使えませんでした。netlify.tomlの書き方があっているのかは微妙です。
netlify.toml
1[[redirects]] 2 from = "/services" 3 to = "http://api.**.com/" 4 status = 200 5 force = true
他にも、CORS・クロスドメインによるエラーだと思い、auth0のCORSなども調整してみましたが、うまくいきませんでした。
あなたの回答
tips
プレビュー