お世話になってます。
今、モーダルウィンドウからajax通信にてPOST送信したものを
LaravelのRouteでルーチングしてDBにinsertさせたいんですが、
以下のエラーが出て少し困惑しています。
CSRF関連からのエラーであることは、わかるのですが対処しきれない感じです。
お分かりの方おられましたら、ご教示下さい。
エラー名
HTTP419: 認証がタイムアウトしました - 以前に有効だった認証の有効期限が切れました。
(XHR)POST - http://localhost:8000/mailbox
●Form側
<form id="regist_Form"> {{ csrf_field() }} <div class="form-group"> <label for="username" class="control-label">ユーザー名</label> <input type="text" class="form-control" id="username" name="username" value="{{ old('username') }}" placeholder="example@gmail.com" required/> @if($errors->has('username'))<span class="text-danger">{{ $errors->first('username')}}</span> @endif </div> <div class="form-group"> <label for="mail" class="control-label">希望アドレス</label> <input type="text" class="form-control" id="mail" name="mail" value="{{ old('mail')}}" required title="この項目は必須です。">@gay86.com @if($errors->has('mail'))<span class="text-danger">{{ $errors->first('mail')}}</span> @endif </div> <div class="form-group"> <label for="password" class="control-label">パスワード(半角英数)</label> <input type="password" class="form-control" id="password" name="password" value="{{ old('password')}}" required title="この項目は必須です。"> </div> <div class="form-group"> <label for="password_2" class="control-label">パスワード(確認)</label> <input type="password" class="form-control" id="password_2" name="password_2" value="{{ old('password_2')}}" required title="この項目は必須です。"> </div> <div class="form-group"> <label for="to-mail" class="control-label">連絡用アドレス</label> <input type="mail" class="form-control" id="Nitta_mail" name="Nitta_mail" value="{{ old('Nitta_mail')}}" required title="この項目は必須です。"> </div> <div id="result"></div> <input type="button" id="gay_resgister" class="btn btn-primary btn-block" value="登録"> </form>
●JS側
$("#gay_resgister").click(function () { var pass = $('#password').val(); var pass_2 = $('#password_2').val(); console.log(pass);⇒入力データが取得できない console.log(pass_2);⇒入力データが取得できる var xhr = new XMLHttpRequest(); xhr.open('post','./mailbox'); xhr.send(); });
ルーチング
Route::post('mailbox', 'GayregistController@Gay_register');
●試したこと
csrf関連のエラーから以下の2つを実行。
①
Form内に以下のmetaタグを挿入
{{ csrf_field() }}を外して
<meta name="csrf-token" content="{{ csrf_token() }}">
JS側
var xhr = new XMLHttpRequest();
xhr.setRequestHeader('X-CSRF-TOKEN', $('meta[name="csrf-token"]').attr('content'));
xhr.open('post','./mailbox');
xhr.send();
error名
⇒InvalidStateError
②
Form内に以下のmetaタグを挿入
{{ csrf_field() }}を外して
<meta name="csrf-token" content="{{ csrf_token() }}">
JS側
var xhr = new XMLHttpRequest();
xhr.setRequestHeader( "Content-Type", "application/x-www-form-urlencoded" );
xhr.setRequestHeader( "X-From", location.href );
xhr.open('post','./mailbox');
xhr.send();
error名
⇒InvalidStateError
尚、{{ csrf_field() }}が有無に関係なく同じエラーが出ます。
回答2件
あなたの回答
tips
プレビュー