実現したいこと
laravelのbladeからajaxのPOSTで別サーバーから値を取得し、コントローラーに値を渡したいです。
。
前提
laravel9で会員登録してメール認証した後のタイミングで実行しています。
発生している問題・エラーメッセージ
console.logでchromeからデバッグした内容を確認した所、登録ボタンを押した後には入ってきていますが、そもそもajaxの通信が行われていません。
該当のソースコード
html
1blade側 2<form method="POST" action="{{ route('register) }}" id="add_form"> 3 @csrf 4 <div> 5 <x-input-label for="card_holder_name" :value="__('氏名')" /> 6 <x-text-input id="cname" class="block mt-1 w-full" type="text" name="name":value="old('name')" /> 7 </div> 8 9 <x-primary-button class="ml-4" id="register"> 10 {{ __('Register') }} 11 </x-primary-button> 12</form
javascript
1js側 2 <script> 3 let registerCardButton = document.getElementById("register"); 4 if (registerCardButton != null) { 5 console.log('test'); 6 registerCardButton.addEventListener("click", function () { 7 alert('呼び出しOK'); 8 let url = "https://sample"; 9 let xhr = new XMLHttpRequest(); 10 xhr.open('POST', url, true); 11 xhr.setRequestHeader('Accept', 'application/json'); 12 xhr.setRequestHeader('Content-Type', 'application/json; charset=utf-8'); 13 xhr.addEventListener('loadend', function () { 14 if (xhr.status === 0) { 15 alert("接続に失敗しました"); 16 return; 17 } 18 let response = JSON.parse(xhr.response); 19 if (xhr.status === 200) { 20 console.log('通信成功'); 21 } else { 22 console.log('通信失敗'); 23 } 24 }); 25 xhr.send(JSON.stringify(data)); 26 }); 27 }
php
1Controller側 2public function register(Request $request): RedirectResponse 3 { 4 5 $a = $request->all(); 6 var_dump($a); 7 }
試したこと
alert('呼び出しOK');までは表示されますが、そこから下のajaxが実行されません。デバッグしても表示されないので、そもそも通信が実行されていないようです。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
