2015-06-06 12 views
8

Zunächst schrieb ich den gesamten JavaScript-Code direkt in meine HTML-Seite mit dem Tag <script>.Wie csrf_token() in eine externe js-Datei in Laravel einbeziehen?

Ein Post-Aufruf in jQuery im JavaScript war so etwas.

$.post('store',{'_token':'{{csrf_token()}}'}, function(data){ /*a bunch of code*/ }); 

Der Code funktionierte gut. Aber später habe ich mein gesamtes Skript in eine externe js-Datei geschrieben. Und der Code funktioniert nicht mehr.

Ich habe das Problem mit dem {{csrf_token()}}, der Fehler

TokenMismatchException in compiled.php

Was ist, wenn ich mit Laravel auf externe js Dateien möchte, sollte ich tun, zu sein?

Antwort

27
  1. <meta>-Tag mit dem Token an die Klinge Layout hinzufügen:
<meta name="_token" content="{{ csrf_token() }}"> 
  1. AJAX-Anfragen Setup:
$(function() { 
    $.ajaxSetup({ 
    headers: { 
     'X-CSRF-Token': $('meta[name="_token"]').attr('content') 
    } 
    }); 
}); 

Sie jetzt kann $.post() verwenden, ohne jedes Mal _token bereitzustellen.

+1

@FaizuddinMohammed Die Dokumentation hierzu finden Sie [hier] (http://laravel.com/docs/5.0/routing#csrf-protection). – patricus

+0

Ow .. ja. Das war nützlich. Vielen Dank! –

Verwandte Themen