为啥要用中间件了,直接在index.php入口文件写上弗成吗,答案是可以的,之前我也是这样做的

这是之前我的做法,虽然很low,但是确实可以了,但是这样用起来看着没有b格,都用框架了,以是我们还是看下用框架的中间件怎么办理问题吧

首先,php artisan make:middleware CorsMiddleware

php跨域引用Laravel 应用中央件解决跨域问题 SQL

中间件中这样写,紧张是对要求头的一些处理

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中自定义的参数一定记得加上~