2017-03-03 24 views
0

ajaxでフォームを投稿したいと思います。私は私のコンソールでerrrorを取得:ajaxでLaravelフォーム投稿

は、リソースの読み込みに失敗しました:サーバーは500(内部サーバーエラー)の状態で応答し

を私はフォームを持っている:

{!! Form::open(array('url'=>'uren','method'=>'POST', 'id'=>'myform')) !!} 
//inputs here etc.. 
{{ Form::button('Add', array('class' => 'btn btn-btn send-btn')) }} 
{{ Form::close() }} 

私のAjax:ルート(web.php)で

$(document).ready(function(){ 
    $('.send-btn').click(function(){ 
     $.ajax({ 
      url: 'uren', 
      type: "post", 
      data: { 
       'werk':    $('input[name="werk"]').val(), 
       'starttijd':  $('input[name="starttijd"]').val(), 
       'eindtijd':   $('input[name="eindtijd"]').val(), 
       'omschrijving':  $('input[name="omschrijving"]').val(), 
       '_token':   $('input[name="_token"]').val()}, 
      success: function(data){ 
       alert(data); 
      } 
     }); 
    }); 
}); 

コントローラには
Route::post('uren', 'User\[email protected]'); 

public function store() { 

    if (\Request::ajax()) { 

     if(Request::input('omschrijving') != '') { 
      $omschrijving = Request::input('omschrijving'); 
     }else{ 
      $omschrijving = ''; 
     } 

     DB::table('uren')->insert(
      [ 
       'userID' => Auth::user()->id, 
       'datum' => Carbon\Carbon::now(), 
       'projectID' => Request::input('werk'), 
       'starttijd' => Request::input('starttijd'), 
       'eindtijd' => Request::input('eindtijd'), 
       'omschrijving' => $omschrijving 
      ] 
     ); 

    } 

} 

私はcsrf_tokenトークンを使用して何かをする必要があると思います。 500エラーを渡す。しかし、どうしたらいいですか?

[UPDATE] トークンを追加しました。トークンを返信して、alertに表示することができます。しかし、私がDB::table....を追加すると、それでも私に500のエラーが返されます。

[COMPLETE] 問題は私のクエリです。フィールドは空ですが、文字列でなければなりません。私はそれを解決した。

+1

http://stackoverflow.com/questions/32738763/laravel-csrf-token-mismatch-for-ajax:より多くの情報についてはXFER -post-request – EddyTheDove

+1

ajax POSTリクエストの[Laravel csrf token mismatch]の可能な複製(http://stackoverflow.com/questions/32738763/laravel-csrf-token-mismatch-for-ajax-post-request) – davejal

+0

ありがとうあなたの答え。私は自分のコードにトークンを持っています。 Ajaxリクエストでコントローラに送信されたトークンに警告することができます。しかし、私はまだ 'DB :: table code'を追加すると500エラーが発生します。 –

答えて

1

あなたはCSFRミドルウェアをたくない場合は、laravel 5のそれを無効にすることができますCSFR保護を無効にするには

: このファイルにアクセスしてください:

app/Http/Middleware/VerifyCsrfToken.php 

あなたはすべてのPOSTリクエストまたは特定のために無効にすることができますルート。 https://laravel.com/docs/5.0/routing#csrf-protection

OR

ちょうどあなたのデータに別のパラメータを渡す"_token": "{{ csrf_token() }}",

+0

答えに感謝します。私は自分の投稿を更新しました。私はトークンを私のコントローラに送り、私のajaxの '成功'に '警告'を表示することができます。しかし、私は 'DB:table ... 'を追加するとまだ500エラーが発生します。 –

+1

エラーの詳細をご提供ください。エラーの詳細を取得するには、キャッチを試みるか、エラー報告を設定してください。 – Omi

+0

私のコンソールのエラー:_POST http:// localhost:8080/urenreg/public/uren 500(内部サーバーエラー)_。私はもっ​​と情報を得ることができたら私はしようとしている.. –