Ich versuche eine eckige + Laravel Rest-Anwendung zu erstellen. Ich kann die Ansichten meiner Datenbank abrufen. Wenn ich versuche, neue Elemente hinzuzufügen. Ich bekomme 500 error
sagt mir Mismatch csrf Token. Mein Formularlayout ist:Wie csrf_token() in AngularJS Formular mit Laravel API zu senden?
<form class="form-horizontal" ng-submit="addItem()">
<input type="text" ng-model="itemEntry" placeholder="Type and hit Enter to add item">
</form>
Dies ist, wie ich versuche, Artikel zur Datenbank hinzufügen:
$scope.addItem = function(CSRF_TOKEN) {
$http.post('/shop', { text: $scope.itemEntry, csrf_token: CSRF_TOKEN}).success(function(data, status) {
if(data) {
var last = _.last($scope.items);
_token = CSRF_TOKEN;
$scope.items.push({text: $scope.itemEntry, bought: false, id: (last.id + 1) });
$scope.itemEntry = '';
console.log($scope.items);
} else {
console.log('There was a problem. Status: ' + status + '; Data: ' + data);
}
}).error(function(data, status) {
console.log('status: ' + status);
});
}
Hier ist mein Filter, die ich für meine Anwendung verwenden:
Route::filter('csrf', function()
{
if (Session::token() != Input::get('_token'))
{
throw new Illuminate\Session\TokenMismatchException;
}
});
In meine Klinge Ansichten ich benutze dies und es funktioniert:
<input type="hidden" name="_token" value="{{ csrf_token() }}" />
Wie kann ich das csrf_token senden, wenn ich HTML-Formulare verwende?
Dank
Edit 1: Header Anfrage zu schreiben Hinzufügen wie diese Fehler nicht geben.
$http({
method : 'POST',
url : '/shop',
data : $scope.itemEntry, // pass in data as strings
headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
});
Hallo, ich habe Skript in den Kopf hinzugefügt. Ich habe CSRF_TOKEN eingespritzt. Wie füge ich es in Form hinzu? Ich habe meinen Code geändert. – ytsejam
Ich konnte es immer noch nicht schaffen, ich las den Code Ende-zu-Ende. Ich habe $ scope.addItem bearbeitet. Kannst du einen Blick darauf werfen? – ytsejam