Laravel 5.2中针对本地存储变量的Ajax POST请求

问题描述 投票:0回答:1

[我正在尝试从刀片服务器视图中从本地存储发送2个变量,该刀片视图没有输入,但是附加了一个JS文件,该文件生成了这两个变量,并将其与ajax发送到控制器一起,该控制器会将信息添加到数据库中。

在刀片中,我添加了令牌的元信息:<meta name="csrf_token" content="{{ csrf_token() }}" />

我的ajax请求看起来像这样:

$.ajax({
            type: 'POST',
            url: '/addvote',
            headers:
                {
                'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
                },
            dataType: "json",
            data: {
                _token: $('meta[name="csrf-token"]').attr('content'),
                id: localStorage.getItem('id'),
                number: localStorage.getItem('number')
            },
        });

我添加了POST路线:Route::post('/addvote', "CandidateController@addvote");

而且我在控制器中的功能看起来像这样:

public function addvote(Request $request){
        $id_candidate = $request['id'];
        ...
        return redirect("/home");

    }

[如果有人发送刀片中未收集的数据,有人可以解释我是否必须拥有此CSRF令牌,如果这样,我会因为服务器错误500而丢失或做错了什么。

ajax laravel laravel-5 post request
1个回答
0
投票

您正在发送两个CSRF令牌

  1. 在您的请求标题中。
  2. 在您的帖子数据中。

尝试删除其中一个。

© www.soinside.com 2019 - 2024. All rights reserved.