TokenMismatchException在Laravel 5 AJAX中

时间:2015-09-22 13:41:51

标签: php jquery ajax laravel laravel-5

我正在尝试在Laravel 5中创建一个AJAX调用。但我正在设置 TokenMismatchException ,但不知道为什么。

我的AJAX代码是 -

$(document).ready(function()
{
    $("#send").click(function()
    {
        $.ajax({
                    headers: { 'csrftoken' : '{{ csrf_token() }}' },
                    type:   'POST',
                    url:    'add_question',
                    data:   { 
                                'webinar_id'        : 1,
                                'email_id'          : "any@email.com",
                                'question'          : $('#question_to_ask').val(),
                                'answer'            : "",
                                'panelist_id'       : 1,
                                'public'            : 1
                            },
                    success: function(data)
                    {
                        $("ul#question_list").prepend(data);
                        $("ul#question_list li:first").fadeIn("slow");
                    }
                });
    });
});

我的Laravel 5控制器是 -

public function add_question()
{
    return "OK";
    //return Request::input('question');
}

但是在要求的时候得到这样的东西 -

enter image description here

我做错了什么?

3 个答案:

答案 0 :(得分:2)

标题的名称应为function addMenu(title) { chrome.contextMenus.create({ title: title, contexts: ["all"], onclick: function() { console.log(1)} }); } addMenu('Log out'); ,而不是X-CSRF-TOKEN

csrftoken

答案 1 :(得分:1)

试试这个:

   $(document).ready(function()
    {
        $("#send").click(function()
        {
            $.ajax({
                        headers: { 'csrftoken' : '{{ csrf_token() }}' },
                        type:   'POST',
                        url:    'add_question',
                        data:   { 
                                    'webinar_id'        : 1,
                                    'email_id'          : "any@email.com",
                                    'question'          : $('#question_to_ask').val(),
                                    'answer'            : "",
                                    'panelist_id'       : 1,
                                    'public'            : 1,
                                     '_token'           : '{{csrf_token()}}' 
                                },
                        success: function(data)
                        {
                            $("ul#question_list").prepend(data);
                            $("ul#question_list li:first").fadeIn("slow");
                        }
                    });
        });
    });

答案 2 :(得分:0)

使用它:

var ajaxCall=$.post("{{ url('add_question')}}",
{
webinar_id        : 1,
email_id          : "any@email.com",
question          : $('#question_to_ask').val(),
answer            : "",
panelist_id       : 1,
public            : 1,
_token              : '{!! csrf_token()!!}'
 });
ajaxCall.done(function(data){
 .....
});

ajaxCall.fail(function(){
....
});