前提・実現したいこと
現在LPを制作しており、お申し込みフォームで送信ボタンを押した時にフォームに記述した内容がslackに反映されるようにしたいと考えています。
ここに質問の内容を詳しく書いてください。
axiosを使ってapi通信を実装しようとしているのですが、以下のようなエラーが出てうなくいかないので詳しい方いらっしゃいましたら教えて頂きたいです。
発生している問題・エラーメッセージ
[Vue warn]: Error in v-on handler: "RangeError: Maximum call stack size exceeded" found in ---> <App> at src/App.vue <Root>
該当のソースコード
app.vue
1//HTML 2<div class="form-small"> 3 <div class="form-group"> 4 <p id="request">お問い合わせ</p> 5 <div> 6 <form action=""> 7 <div class="form-items"> 8 <div class="form-head"> 9 <div class="mandatory">必須</div> 10 <p>会社名</p> 11 </div> 12 <input type="text" id="company"> 13 </div> 14 <div class="form-items"> 15 <div class="form-head"> 16 <div class="mandatory">必須</div> 17 <p>お名前</p> 18 </div> 19 <input type="text" id="name"> 20 </div> 21 <div class="form-items"> 22 <div class="form-head"> 23 <div class="mandatory">必須</div> 24 <p>メールアドレス</p> 25 </div> 26 <input type="text" id="mail"> 27 </div> 28 <div class="form-items"> 29 <div class="form-head"> 30 <div class="mandatory">必須</div> 31 <p>電話番号</p> 32 </div> 33 <input type="text" id="phone"> 34 </div> 35 <button type="button" class="send-button" @click="onclick">送信する</button> 36 </form> 37 </div> 38 </div> 39 </div> 40//JS 41const axios = require("axios"); 42export default { 43 name: 'App', 44 components: { 45 }, 46 methods: { 47 onclick: 48 function slack (payload) { 49 const company = document.getElementById('company').value; 50 const name = document.getElementById('name').value; 51 const mail = document.getElementById('mail').value; 52 const phone = document.getElementById('phone').value; 53 const url = ['webhook-URL'] 54 // let params = new URLSearchParams(); 55 const params = { 56 "企業名": company, 57 "名前": name, 58 "メールアドレス": mail, 59 "電話番号": phone 60 } 61 axios.post(url, JSON.stringify(payload), { 62 withCredentials: false, 63 transformRequest: [(data, headers) => { 64 delete headers.common.Authorization 65 delete headers.post["Content-Type"] 66 return data 67 }] 68 }) 69 // return res.data 70 slack(params).then(console.log); 71 } 72 } 73}
試したこと
以下の記事を参考にしました。
https://qiita.com/shiotomo27/items/a9a303f7ba7f1949b899
https://qiita.com/hotaca/items/8caad4e8ed207613369f
https://qiita.com/ProjectEuropa/items/2f0169fc9a0410d8f740
補足情報(FW/ツールのバージョンなど)
vue cli 2.6
mac os
axios 0.21.1
jquery 3.6.0
あなたの回答
tips
プレビュー