使用官方的限流器,无法自己捕捉异常。直接请求api是对的,用axios访问时候触发异常就报跨域错误了
postman请求是正常的 axios请求触发限流就报跨域 我怀疑是这个官方限流器response被清空了 有大佬知道吗
这里详细描述问题
#[RateLimiter(limit: 1, ttl: 60, message: 'Request limit reached. Please try again later.')]
public function test(Request $request): Response
{

这里粘代码
异常接管
尝试打印
default.INFO: 捕获到异常:Webman\RateLimiter\RateLimitException [] []
这里粘贴报错
查看日志
跨域问题请查看文档或使用插件
同时记得在你的Route.php 最下方增加以下代码:
不是跨域问题 请求第一次是正常的 请求第二次触发限流就报跨域问题 其实是捕捉异常那没返回我定义的格式
这就是手册说的洋葱模型啊,请求到限流中间件就返回了,没执行到跨域中间件所以就报跨域错误。
想办法把跨域中间件放到限流中间件前面就行了。
我也是想到访到前面去 。但是都是插件下载。都是全局 这个位置没办法处理
config/plugin/webman/cors/middleware.php 里改成
config/plugin/webman/rate-limiter/middleware.php 里改成
如果更新框架会被覆盖了吗
不会,更新只更新程序,不覆盖配置