xczizz
- xczizz 2018-04-12 已签到连续签到1天,获得了5个金钱
- xczizz 2018-04-10 已签到连续签到1天,获得了5个金钱
'' => 'options'不生效是因为设置了'controller' => 'v1/user',这样,如果使用OPTIONS访问 v1/users/abc的时候。会报404,看来这是只针对当前users的url,并不支持users下边的比如users/abc这种路径的访问。
最终改为'' => 'options'
就你理解的我一一给你理下。看看你能理解多少
1.
'' => 'options'不生效是因为设置了'controller' => 'v1/user'这是错误的理解
'' => 'options' 的意思是当前设置的controller空路由时他的options访问可以到哪个位置,相当于
options www.xxx.com/users 他options走的是actions里面的options独立方法2.
如果使用OPTIONS访问 v1/users/abc的时候。会报404,
这是因为options 访问 www.xxx.com/user/abc 你是没有配置过任何options的,你可以在你的chrome的请求头部看到信息
你只要给他配置起来就行比如:我这里加点料,我怕你理解错,我加点。这个/user/abc他需要post请求那写法如下
'POST abc' => 'abc',
'OPTIONS abc' => 'options3.最终改为'《action》' => 'options'
说有问题是因为你统一了路由,这种写法,在与我们写路由来说,是不规范的,路由就是有什么写什么,最小化标准,会让你更快的定位问题。比如 www.xxx.com/users/12 这样你的options就又走不通了。是不是得'/' => 'options'了呢,不能说你写错,只能说你思想不对。就得'OPTIONS users/' => 'options'一定要去看YII2他的路由创建原理是怎么实现的,看源代码
而你以上的理解错误是因为
你写在patterns里,他的意思是替换原有路由
patterns 或 extraPatterns 重新定义现有的模式或添加此规则支持的新模式@6把刀 感谢
'' => 'options'不生效是因为设置了'controller' => 'v1/user',这样,如果使用OPTIONS访问 v1/users/abc的时候。会报404,看来这是只针对当前users的url,并不支持users下边的比如users/abc这种路径的访问。
最终改为'' => 'options'
就你理解的我一一给你理下。看看你能理解多少
1.
'' => 'options'不生效是因为设置了'controller' => 'v1/user'这是错误的理解
'' => 'options' 的意思是当前设置的controller空路由时他的options访问可以到哪个位置,相当于
options www.xxx.com/users 他options走的是actions里面的options独立方法2.
如果使用OPTIONS访问 v1/users/abc的时候。会报404,
这是因为options 访问 www.xxx.com/user/abc 你是没有配置过任何options的,你可以在你的chrome的请求头部看到信息
你只要给他配置起来就行比如:我这里加点料,我怕你理解错,我加点。这个/user/abc他需要post请求那写法如下
'POST abc' => 'abc',
'OPTIONS abc' => 'options3.最终改为'《action》' => 'options'
说有问题是因为你统一了路由,这种写法,在与我们写路由来说,是不规范的,路由就是有什么写什么,最小化标准,会让你更快的定位问题。比如 www.xxx.com/users/12 这样你的options就又走不通了。是不是得'/' => 'options'了呢,不能说你写错,只能说你思想不对。就得'OPTIONS users/' => 'options'一定要去看YII2他的路由创建原理是怎么实现的,看源代码
而你以上的理解错误是因为
你写在patterns里,他的意思是替换原有路由
patterns 或 extraPatterns 重新定义现有的模式或添加此规则支持的新模式@6把刀 是的,我把
''=>'options'
理解错了。一开写的时候最先想到的也是直接给abc
配一个'OPTIONS abc' => 'options
,但后来觉得如果有新的路由比如users/def ,users/ xyz
都需要options
请求的时候,那就是又配两个?所以就想能不能写一个路由,同时满足这三个options请求,于是才有了我以为的''=>options
可以生效的错误理解,接下来改成'<action>' => 'options'
其实也有问题,当options请求一个不存在的路由的时候,他也会有返回。所以这种统一路由的想法就是不规范不建议的对吧- xczizz 回复了 RichardTian 的回答
http://www.yiichina.com/doc/api/2.0/yii-filters-cors
看看这里介绍,希望能帮到你@6把刀 这个确实是能解决当前的困扰,那正确的做法应该是什么?
- xczizz 回答了问题 api怎么设置options
已解决
'' => 'options'
不生效是因为设置了'controller' => 'v1/user'
,这样,如果使用OPTIONS
访问v1/users/abc
的时候。会报404,看来这是只针对当前users
的url,并不支持users
下边的比如users/abc
这种路径的访问。
最终改为'<action>' => 'options'
需要限制options可访问路由,就适当更改
'<action>'
规则 - xczizz 提出了问题api怎么设置options
- xczizz 2018-04-03 已签到连续签到1天,获得了5个金钱
- xczizz 2018-03-27 已签到连续签到1天,获得了5个金钱
- xczizz 2017-12-31 已签到连续签到1天,获得了5个金钱