gpt4 book ai didi

angularjs - 如何使用 Laravel API 在 AngularJS 表单中发送 csrf_token()?

转载 作者:行者123 更新时间:2023-12-03 11:03:44 25 4
gpt4 key购买 nike

我正在尝试构建一个 angular + laravel rest 应用程序。我可以获得我的数据库的 View 。当我尝试添加新项目时。我得到 500 error告诉我不匹配的 csrf token 。
我的表单布局是:

<form class="form-horizontal" ng-submit="addItem()">

<input type="text" ng-model="itemEntry" placeholder="Type and hit Enter to add item">
</form>

这就是我尝试将项目添加到数据库的方式:
$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);
});

}

这是我用于我的应用程序的过滤器:
Route::filter('csrf', function()
{
if (Session::token() != Input::get('_token'))
{
throw new Illuminate\Session\TokenMismatchException;
}
});

在我的 Blade View 中,我使用它并且它有效:
<input type="hidden" name="_token" value="{{ csrf_token() }}" />

使用 html 表单时如何发送 csrf_token?

谢谢

编辑 1:
像这样向 post 请求添加 header 不会产生错误。
  $http({
method : 'POST',
url : '/shop',
data : $scope.itemEntry, // pass in data as strings
headers : { 'Content-Type': 'application/x-www-form-urlencoded' }
});

最佳答案

如果你使用 Laravel 5,不需要将 CSRF token 添加到 Angular http header 。

带有 Angular 的 Laravel 5 会自动为您执行此操作。

http://laravel.com/docs/5.1/routing#csrf-x-xsrf-token

关于angularjs - 如何使用 Laravel API 在 AngularJS 表单中发送 csrf_token()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18336699/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com