laravel 5.2有效的ajax请求

Pra*_*har 0 php ajax laravel-5.2

如果请求是有效的ajax请求,我们如何检查Laravel 5.2.在codeigniter中,我们可以像$ this-> input-> is_ajax_request()一样检查它.Laravel 5.2有类似之处吗?

另外,我想知道我们如何验证对csrf令牌的请求.如果我通过'web'中间件生成csrf令牌然后将此令牌作为ajax请求参数传递,我的网页是否正常?Laravel是否会负责验证令牌或者是否有替代方法?

我已经检查了laravel 5.2文档,因为这是我第一次处理laravel框架,所以文档似乎假定读者已经熟悉框架的早期版本.对于像我这样的新人来说,这有点压倒性.

提前致谢.如果您需要我更多的意见,请告诉我.

Prakhar

小智 7

我想这可能会帮助你找到一个在Laravel中使用AJAX的基本方法.

这是一段非常古老的代码,但它的工作原理是jajajaja

控制器端:

/**
 * @param Request $request
 * @return \Illuminate\Http\JsonResponse
 */
public function getRamos(Request $request)
{
    $check = Ramo::find($request->input('ramo'));
    $subramos = Subramo::where('ramo_id', $check->id)->get(['nombre_subramo']);
    if($request->ajax()){
        return response()->json([
            'subramos' => $subramos
        ]);
    }
}
Run Code Online (Sandbox Code Playgroud)

在前面:

<script>
    $(document).ready(function(){
        $('#ramo').change(function(){
            var ramo, token, url, data;
            token = $('input[name=_token]').val();
            ramo = $('#ramo').val();
            url = '{{route('getRamos')}}';
            data = {ramo: ramo};
            $('#subramos').empty();
            $.ajax({
                url: url,
                headers: {'X-CSRF-TOKEN': token},
                data: data,
                type: 'POST',
                datatype: 'JSON',
                success: function (resp) {
                    $.each(resp.subramos, function (key, value) {
                        $('#subramos').append('<option>'+ value.nombre_subramo +'</option>');
                    });
                }
            });
        });
    });
</script>
Run Code Online (Sandbox Code Playgroud)

将"#ramo"视为选择输入并使用style/html包,其中令牌作为隐藏输入传递.