2017-08-26 11 views
0

私の問題について私の研究を試みましたが、解決できませんでした。私はクリックでAjax POSTを試みています。私は最も一般的な問題をcsrf_tokenのために読んだことがありますが、私はそれが適切に処理されていると思いますか?AjaxポストのLaravel 500(内部サーバーエラー)

私はこのエラーを取得しておく

:ここ

POST http://example.com/refreshCalendar 500 (Internal Server Error) 

は私のコードです...

をCSRFトークンのための私のメタタグは私master.blade.phpファイル

<meta name="token" content="{{ csrf_token() }}"> 
のトップに

ルート:

Route::post('/refreshCalendar', ['as' => 'refreshCalendar', 'uses' =>'[email protected]']); 

のJS機能

function refreshCalendar(obj){ 
var month = obj.data('month'); 
var year = obj.data('year'); 
history.pushState(null, null, '/month/'+month+'/year/'+year); 

var data = { 
    "month":month, 
    "year":year, 
    _token:$('meta[name="csrf-token"]').attr('content') 
}; 

$.ajax({ 
    type: "POST", 
    url: '/refreshCalendar', 
    dataType: 'html', 
    async:true, 
    data: data, 
    success: function(data){ 
      $('#calendarHolder').html(data); 

    }, 
    error: function(){alert("There was an error retrieving information");return false;} 
}); 

}

マイコントローラー:

namespace App\Http\Controllers; 

use DateTime; 
use Illuminate\Http\Request; 

class Calendar extends Controller 
{ 


public function refreshCalendar(Request $request) 
    { 
     //Set data to $request 
     $data = $request->all(); 
     return show($data['month'], $data['year'], true); 
    } 

} 
+0

失敗したリクエストに対するレスポンス本文は何ですか?ブラウザのネットワークインスペクタを使用してエラーを確認してください。 –

+0

あなたはそれがconsole.logに書かれていることについて話していますか? "情報の取得中にエラーが発生しました"が表示されますが、console.logに "POST http://example.com/refreshCalendar 500(内部サーバーエラー)"と表示されます – Dom

+0

ブラウザのデバッガを使用して、サーバー。それは手がかりを含むかもしれない。このルートのCSRFチェックをオフにして、何が起こるかを見てください。 – Jeffrey

答えて

0
<meta name="token" content="{{ csrf_token() }}"> 
_token:$('meta[name="csrf-token"]').attr('content') 

あなたのメタタグ名は、しかし、あなたはcsrf-tokenという名前のメタタグを探している、tokenです。

関連する問題