为啥要用中间件了,直接在index.php入口文件写上弗成吗,答案是可以的,之前我也是这样做的
这是之前我的做法,虽然很low,但是确实可以了,但是这样用起来看着没有b格,都用框架了,以是我们还是看下用框架的中间件怎么办理问题吧
首先,php artisan make:middleware CorsMiddleware
中间件中这样写,紧张是对要求头的一些处理
Access-Control-Allow-Origin 这是要求来源的判断 这里可以直接写 ,便是许可所有资源访问的意思,当然也可以把自己的域名写上去比如:'localhost,127.0.0.1',即只有这些设置的域名和ip才能访问
Access-Control-Allow-Headers 许可通过的相应报头 这里一定不要忘了把自己定义的加入,当然也可以无脑的直接写
Access-Control-Allow-Methods 许可的要求方法 我一样平常写接口只用这两个post/get,也不考虑遵照什么restful接口设计风格当然 也可以直接写 吸收全部的要求方法
然后,便是利用中间件了,这里须要再app/Http/Kernel.php中加入
上面的图中 ,在$middleware中追加新建的CorsMiddleware,即所有的要求都会通过这个中间件处理
上面的图中,在$middlewareGroups中如果加入了这个中间件,比如在api中加入了,那么就只有api分组中利用,在加入时候 可以写中间件别名,如下图
$routeMiddleware 我们可以把我们的中间件加入并起个名字,方便我们在路由中调用
可以这样利用 protected $routeMiddleware = [
'cors'=>\App\Http\Middleware\CorsMiddleware::class
]
末了总结下便是,须要把稳kernel.php中的引入,详细怎么写,写到什么地方,这是要明确把稳的 ,搞明白kernel.php文件中的 $middleware $middlewareGroups $routeMiddleware 这三个的用法,就可以了,还有便是中间件中header中自定义的参数一定记得加上~