今天突发跨域中间件间歇性失效,请各位指教----发现问题已解决

muvtou

问题描述

跨域访问 有时候 有效,有时候无效,检查中间件没发现问题,出现404的时候发现请求没有经过中间件就404了

程序代码或配置

'' => [
        app\common\middleware\AccessMiddleware::class,
    ]
 public function process(Request $request, callable $handler) : Response
    {
        // 如果是opitons请求则返回一个空的响应,否则继续向洋葱芯穿越,并得到一个响应
        echo $request->method();

        $response = $request->method() === 'OPTIONS' ? response('') : $handler($request);

        // 给响应添加跨域相关的http头
        $response->withHeaders([
            'Access-Control-Allow-Credentials' => 'true',
            'Access-Control-Allow-Origin' => $request->header('origin', '*'),
            'Access-Control-Allow-Methods' => $request->header('access-control-request-method', '*'),
            'Access-Control-Allow-Headers' => $request->header('access-control-request-headers', '*'),
        ]);

        return $response;
    }

重现问题的步骤

重启服务器,重新应用均无效

操作系统环境及workerman/webman等具体版本

Workerman version:4.1.13
PHP version:8.1.21

306 1 0
1个回答

muvtou

处理多域名绑定 出现的问题,造成这个问题的其实 就是处理的path路径时候,为了省事直接使用parent::path(),致使获取的数据第二次访问的时候 缓存已经被处理过,并不是真实的url访问数据,所以造成数据二次处理,访问404

  • 释永战 2023-10-18

    正解,常驻内存导致的问题···

🔝