laravel - Ajax中间件

标签 laravel laravel-5

我似乎记得在Laravel 4中有一个ajax过滤器,它只允许通过ajax请求。

Laravel 5是否有任何类似的中间件?

我有一条通过ajax从数据库中获取数据的路由,我想保护此路由,以使任何用户都无法访问它并看到json数据字符串。

最佳答案

您可以使用中间件来做到这一点。
php artisan make:middleware AllowOnlyAjaxRequests

app/Http/Middleware/AllowOnlyAjaxRequests.php



<?php

namespace App\Http\Middleware;

use Closure;

class AllowOnlyAjaxRequests
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        if(!$request->ajax()) {
            // Handle the non-ajax request
            return response('', 405);
        }

        return $next($request);
    }
}

'ajax' => \App\Http\Middleware\AllowOnlyAjaxRequests::class,添加到routeMiddleware中的app/Http/Kernel.php数组中。

然后,您可以在路线上使用ajax中间件。

关于laravel - Ajax中间件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32246359/

相关文章:

php - 在 Laravel 5 中的选择查询中使用属性值

mysql - Laravel 5.2 查询将第一个表和第二个表的结果相交

laravel-5 - 在 Blade 中获取自定义 guard 登录名称

ios - 无法上传图片(React native,Laravel)

laravel - 如何在laravel中使用shift-jis编码导出csv文件?

php - 在多个文件中拆分 Lumen 6.X 路由

javascript - Vue.js 2 自动转义 HTML

php - 如何在::auth() 上应用中间件?

php - Laravel Eloquent orderBy 日期字段不返回所有值

javascript - 从 laravel 5 中的另一个目录获取 Assets