beforeAction执行力两次

寒塘冷月

几类里面定了beforeAction 方法 其他控制器继承这个基类,奇怪的是 每次请求控制器的api 这个基类的 beforeAction 竟然执行了2次

protected $request = null;
protected $config = null
public function beforeAction(Request $request){
    print_r('a12<br/>');
}

这个操作现在每个请求都在控制台 输出 2次

400 4 0
4个回答

抽不完的寂寞

打印下请求信息,没准儿是浏览器发起了2个不同的请求

public function beforeAction(Request $request){
    echo $request->path()."\n";
}
  • 寒塘冷月 2022-07-04

    确实 是一样的请求 真奇怪

  • 抽不完的寂寞 2022-07-05

    看下浏览器network发了几个请求。如果确实是一个请求,可能是你服务端配置了两个action-hook中间件,触发了两次

  • 寒塘冷月 2022-07-05

    非常谢谢,确实是这个问题引起的

2548a

应该是跨域发起了options 请求,你设置跨域没拦截options请求导致两次请求都跑控制器上去了

王八念经

建议把api访问的继承类也发出来

liziyu

我猜大佬用的是类似 layui这种视图模板。
如果是的话,是因为当打开页面时页面会get方式请求一次控制器渲染页面;
完成以后,页页中的ajax异步方式又请求了一次api数据;
所以两次!~

🔝