108 Star 946 Fork 160

GVPhyperf / hyperf

 / 详情

Hyperf的注解路由无法支持HTTP请求方法OPTIONS

待办的
创建于  
2021-06-26 13:51

在Hyperf2.1中引入注解路由时,无论是使用@AutoController还是@Controller,都无法做到对于HTTP请求方法OPTIONS的支持,尤其是@Controller 注解,虽然提供了对@GetMapping @PostMapping @PutMapping @PatchMapping @DeleteMapping 的支持,但是却缺少对HTTP请求方法OPTIONS的支持,当JAVASCRIPT前端含有自定义Header头请求服务器时,将会收到服务器返回的405错误(请求方法不允许),OPTIONS请求方法是由浏览器发起的预请求,其目的是检测服务器是否支持当前的自定义Header头。产生此错误的原因在于框架内核源码之/Hyperf/HttpServer/Router/DispatcherFactory.php中的方法handleAutoController和方法handleController,handleAutoController定义的默认方法($autoMethods)里没有OPTIONS;handleController定义的注解类型($mappingAnnotations)里没有OPTIONS;目前只能通过手工在/config/routes.php中定义路由的方式处理该错误,希望官方能在注解方面给予对HTTP请求方法OPTIONS的支持。

评论 (1)

乔布森 创建了任务
乔布森 关联仓库设置为hyperf/hyperf
展开全部操作日志

OPTIONS只是预请求确定可以跨域访问,进控制器干嘛,直接在中间件里返回响应就行了

登录 后才可以发表评论

状态
负责人
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
参与者(2)
1355313 jobsen12580 1578949628
PHP
1
https://gitee.com/hyperf/hyperf.git
git@gitee.com:hyperf/hyperf.git
hyperf
hyperf
hyperf

搜索帮助