webman的中间件使用跨域问题

bang

现附上我的路由配置
截图

然后我的中间件配置跨域,中间件截图就不提供了,和官方手册的一致。以下的是中间件的配置代码:
截图

然后我通过浏览器请求 http://域名+/upload/file 后,就会提示跨域。

无奈只能配置中间件全局跨域,才能解决问题。如下:
截图

请问还有别的解决方法吗?我现在不这样配置全局跨域

2536 1 1
1个回答

walkor

Upload::class 的命名空间是?

  • bang 2022-03-08

    是我实际处理的逻辑控制器,仅仅返回一个json数据而已,可以忽略的。不过不是放在admin模块,是否common模块,这样会不会有影响?

  • bang 2022-03-08

    解决了。应该是我的 Upload::class 是在 common 模块导致的,所以要给common模块配置跨域才行。感谢

  • walkor 2022-03-08

    中间件配置是按照实际调用模块来的,不是按照url地址来的。
    如果你的 Upload::class 是在common模块里,应该在中间件里配置common为key,而不是upload

    如果你想为某个特定路由设置中间件,可以这样。

    Route::group('/upload', function() {
        Route::any('/file', [your_class, 'method']);
    })->middleware([support\middleware\AccessControll::class]);

    参考手册 路由中间件

  • bang 2022-03-08

    感谢,刚刚试了一下,确实是这样。我一直以为是按照路由来的

年代过于久远,无法发表回答
🔝