2017-03-03 72 views
0

我要發佈使用Ajax的形式。我得到一個errror在我的控制檯:Laravel形式後使用Ajax

無法加載資源:服務器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:

$(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); 
      } 
     }); 
    }); 
}); 

在路線(web.php):

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 [對AJAX POST請求Laravel CSRF令牌不匹配]的-post請求 – EddyTheDove

+1

可能的複製(http://stackoverflow.com/questions/32738763/laravel-csrf-token-mismatch-for-ajax-post-request) – davejal

+0

感謝你的答案。我現在在代碼中有令牌。我可以通過Ajax請求提醒已發送給我的控制器的令牌。但我仍然得到500錯誤,當我添加了'DB ::表code' –

回答

1

如果你不想CSFR中間件你可以禁用,在laravel 5:

要禁用CSFR保護: 去這個文件:

app/Http/Middleware/VerifyCsrfToken.php 

您可以禁用所有POST請求或特定路線。 欲瞭解更多信息XFER:https://laravel.com/docs/5.0/routing#csrf-protection

OR

只是通過另一個參數數據"_token": "{{ csrf_token() }}",

+0

謝謝您的回答。我更新了我的帖子。我將令牌發送給我的控制器,並可以在我的ajax的「成功」中用「alert」顯示。但我仍然得到500錯誤,當我加'DB:表...' –

+1

請提供有關錯誤的詳細信息,請使用嘗試捕捉或設置錯誤報告上,以獲取有關錯誤 – Omi

+0

在我的控制檯中的錯誤的詳細信息:彥博http:// localhost:8080/urenreg/public/uren 500(內部服務器錯誤)_。如果我能獲得更多信息,我會嘗試 –