2016-07-22 9 views
0

Ich baue bearbeiten Post-System mit jquery und Ajax in Laravel 5.2. Wenn ich Schaltfläche Änderungen speichern in meinem Bootstrap-modal auf klicken, wird der folgende Fehler angezeigt:500 interner Serverfehler mit jquery und ajax in Laravel 5.2

Error: POST http://localhost:8000/edit 500 (Internal Server Error)

send @ jquery-1.12.0.min.js:4

ajax @ jquery-1.12.0.min.js:4 (anonymous function) @ myplace.js:24

dispatch @ jquery-1.12.0.min.js:3

r.handle @ jquery-1.12.0.min.js:3

js Code:

$('#modal-save').on('click' , function() { 

$.ajax({ 

method : 'POST' , 
url : url , 
data: { body: $('#post-body').val(), postid: '' , _token: token }}) 

.done(function(msg) { 

console.log(msg['message']); 

    }); 
    }); 

in View-Datei enthalten:

<script> 
    var token='{{ Session::token() }}'; 
    var url='{{ route('edit') }}' ; 
    </script> 


<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/1.10.1/jquery.min.js"></script> 

<script src="https://code.jquery.com/jquery-migrate-1.2.1.min.js" ></script> 
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js" integrity="sha384-0mSbJDEHialfmuBBQP6A4Qrprq5OVfW37PRR3j5ELqxss1yVqOtnepnHVP9aJ7xS" crossorigin="anonymous"></script> 
    <script src="src/js/myplace.js"></script> 
+0

'Internal Server Error' ist Ihr Server-Weg, Ihnen zu sagen, sollten Sie lese es ist Logfiles. Das ist der einzige Ort, an dem Sie nützliche Debugging-Informationen finden können. – Oldskool

+0

@Oldskool meine Protokolldatei: http://laravel.io/bin/E31Qy –

+0

Sieht aus wie Ihr CSRF-Token ist ungültig. Siehe auch http://stackoverflow.com/questions/32738763/laravel-csrf-token-mismatch-for-ajax-post-request – Oldskool

Antwort

2

Es scheint so, Sie haben Probleme mit unserem csrf-Token. Bevor du deine Ajax-Anrufe machst ändere einfach dein Ajax-Setup und lege das Token in jede Kopfzeile, die du über Ajax gesendet hast. Dies sollte Ihren Fehler beheben.

Zuerst fügen Sie ein Meta-Tag

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

Dann Ajax-Setup einstellen

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

oder noch einfacher

$.ajaxSetup({ headers: { 'csrftoken' : '{{ csrf_token() }}' } }); 
+0

Vielen Dank, es hat funktioniert! –

+0

hat mir große Zeit gerettet! Danke Kumpel!!!!! –

Verwandte Themen