2017-08-26 1 views
0

Ich habe versucht, meine Forschung zu meinem Problem, aber nicht in der Lage, es zu lösen. Ich versuche AJAX POST beim Klicken. Ich habe gelesen, das beliebteste Problem ist wegen der csrf_token, aber ich glaube, ich habe das richtig behandelt?Laravel 500 (Interner Serverfehler) auf Ajax Post

Ich erhalte diese Fehlermeldung:

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

Hier ist mein Code ...

Mein Meta-Tag für die CSRF-Token an der Spitze meiner master.blade.php Datei

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

Route:

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

Js Funktion

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

}

Mein Controller:

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

Was ist der Antworttext für Ihre fehlgeschlagene Anfrage? Verwenden Sie den Netzwerkinspektor Ihres Browsers, um den Fehler zu lesen. –

+0

Sie sprechen über das, was es in der console.log sagt? Es warnt mich die "Es gab einen Fehler beim Abrufen von Informationen", aber die console.log sagt "POST http://example.com/refreshCalendar 500 (Interner Server Fehler)" – Dom

+0

Verwenden Sie den Debugger des Browsers, um zu sehen, was wirklich gesendet wird der Server. Es könnte Hinweise enthalten. Versuchen Sie, die CSRF-Prüfung für diese Route zu deaktivieren und sehen Sie, was passiert. – Jeffrey

Antwort

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

Ihr Meta-Tag Name ist token, aber Sie für den Meta-Tag suchen namens csrf-token.

Verwandte Themen