按官方文档设置了corsMiddleware,也添加到config/middleware,但依然报cors错误时:
试一下以下方法:
比如:请求地址是/auth/login,路由表为Route:post(‘/auth/login’),改为Route:any(‘/auth/login’)。
如果cors问题解决了说明我们需要配置所有路由表对应的options请求。
官方文档中有说过用any来解决这个问题。但这不是很合理。有时候同一个地址需要get,post分配不同方法。
或者已经有很多路由表,修改也挺麻烦的。
此时,不妨试一下如下方法:
在route文件最下方添加以下路由:这个路由表的作用是匹配任意地址的options请求
Route::options('/[{path:.+}]', function (Request $request) {});
如此匹配路由表这一关过了,下一步就会走已有的cors中间件。
这个方法因为添加的是任意地址的options请求,需要保证的是,不能有使用any的路由表,因为会报重复路由错误。