2016-10-27 26 views
0

ajaxで投稿要求をlaravelのコントローラに送信したいと思います。 ajaxリクエストは2つの入力引数を送信し、コントローラは最初の引数でデータベース内の列を探し、2番目の入力引数でname属性を設定します。しかし、コンソール500(内部サーバーエラー)にこのエラーメッセージがあります。POST 500(内部サーバーエラー)Ajax

のAjax機能:

var $emailInput = $('input[name=eemail]').val(); 
var $finduser = $('[name=userName]').val(); 

$.ajax({ 
     type:"POST", 
     url:'/code/task1/public/editUserAdmin', 

     data: { 
      'emailInput' : $emailInput, 
      'finduser' : $finduser, 
      }, 
      success:function(data){ 

     // $("#editEmail").attr("readonly", true); 
     // $("#editEmail").val(data[0].name); 

      alert("OK"); 
      } 

    }); 

ルート:

Route::post('/editUserAdmin', '[email protected]'); 

コントローラー機能:

$findUserInput = $request->input('finduser'); 
     $user = User::where('name',$findUserInput)->first(); 


     if(!$user){ 
      return response()->json(['status'=>false,'Description' => 'User could not be found.']); 
     } 
      //$user->name = $request->input('nameInput'); 
      $user->email = $request->input('emailInput'); 

      $user->save(); 
} 

そして、私はAJAX呼び出しを作っていた最後の時間は、私が持っているので、また、私はCSRFどこでもインポートこのcsrfの問題と次のコードは私の問題を解決しましたが、現在は動作していません。

<meta name="csrf-token" content="{{ csrf_token() }}"> 

$.ajaxSetup({ 
       headers:{ 
        'X-CSRF-TOKEN' : $('meta[name="csft-token"]').attr('content') 
       } 
      }); 

     $.ajaxSetup({ 
        headers: { 
        'X-CSRF-TOKEN': $('[name="_token"]').val() 
       } 
      }); 

and this 
<h3 class="media-heading" name="userName">{{ $user->name }}</h3> 
<input type="hidden" name="_token" value="{{ csrf_token() }}"> 
<input type="text" class="form-control paddingzero" class=text-center" readonly value="Name Name"> 
<input type="text" class="form-control paddingzero" class=text-center" name="eemail" id="editEmail" readonly value="{{ $user->email }}"> 

+1

試し例えば、サーバー側のコード – sensorario

+0

データセクション内の変数を、ログに記録します'$ emailInput'などはPHP変数であり、動作しません。 – learner

+0

サーバログを確認する –

答えて

0

Ajaxには「タイプ」プロパティがありません。方法としてPOSTを渡す必要があります

$.ajax({ 
    method: "POST", 
    url:'/code/task1/public/editUserAdmin', 

    data: { 
     'emailInput' : $emailInput, 
     'finduser' : $finduser, 
    }, 
     success:function(data){ 
     alert("OK"); 
    } 

}); 

エラーモードの場合は、エラーログ/出力を有効にする必要があります。あなたはdevツールF12(たとえばクロム)を開いて、エラー出力を見てみることができます。おそらくそれは許されない方法であろうとなかろうとします。

jqueryオブジェクトを参照していない場合は、実際の変数の前に$を付けないことをお勧めします。

var $emailInput = $('input[name=eemail]').val(); 
var $finduser = $('[name=userName]').val(); 

代わり

var $emailInput = $('input[name=eemail]'); // if you need it more than once 
var email = $emailInput.val(); 

をするか、またはあなただけのそれをものより良い名前が必要な場合には、

var emailInput = $('input[name=eemail]').val(); 
関連する問題