首页 > 解决方案 > 无法从laravel中的ajax获取数据

问题描述

无法从 laravel 中的 ajax 获取数据。这是我正在使用的所有文件的代码

-------- 我从哪里得到这个函数调用的观点-----

<input type="date" min="" class="form-control" id="checkoutdate" name="checkoutdate" onchange="checkdate()" required>


and my if part is working fine 


------- Custom.js------------- Where I wrote my own javascript

    function checkdate()
    {
        var checkindate = document.getElementById("checkindate").value;
        var checkoutdate = document.getElementById("checkoutdate").value;

        if(checkindate> checkoutdate)
        {
            alert("Checkout date error please correct it");
            document.getElementById('checkoutdate').value = checkindate;
            stop();
        }
        else
        {
            $.ajax({
                url: '/checkavailability',
                type: 'POST',
                dataType: 'json',
                data:{checkin: $('#checkindate').val(), checkout: $('#checkoutdate').val()}, // the value of input having id vid
                success: function(response){ // What to do if we succeed
                    alert($arr);
                }
            });
        }

--------我定义的路线------------

    Route::post('/checkavailability','BookingController@check');

------------我的控制器功能------

 public function check(Request $request)
    {
       $data = $request->all();
        $checking = DB::table('bookings')->get();
        $arr = "first sucess request";
        return Response()->json($arr);
    }

检查功能仅用于检查,但不起作用

在我的浏览器控制台中,它给出了加载资源失败的错误:服务器响应状态为 419(未知状态)

标签: phpjqueryajaxlaravel

解决方案


不发帖时会发生 419 错误csrf_token。在您的 post 方法中,您必须将此标记与其他变量一起添加。添加csrf_tokenajax请求。希望它能修复错误

如何在您的 ajax 请求中添加 csrf 令牌?

首先在您的主布局中添加此元标记

 <meta name="csrf-token" content="{{ csrf_token() }}">

然后你可以在你的 ajax 请求中从这个元标记中获取 csrf 令牌

 var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
        var name = $("#name").val();
        $.ajax({
            url: '/checkavailability',
            type: 'POST',
            dataType: 'json',
            data:{_token: CSRF_TOKEN, checkin: $('#checkindate').val(), checkout: $('#checkoutdate').val()}, // the value of input having id vid
            success: function(response){ // What to do if we succeed
                alert($arr);
            }
        });

我希望它会帮助你。


推荐阅读