【发布时间】:2016-08-14 17:47:24
【问题描述】:
我在动词行为中添加了一个动词,只允许对某些操作进行 POST 请求,如果请求不是 POST,它应该返回不允许的方法,但这不起作用它返回 404 未找到响应而不是 405 不允许响应当我发送 GET 请求而不是 POST 时,请提供任何帮助
我在我的 REST 中设置了这样的行为
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['authenticator'] = [
'class' => CompositeAuth::className(),
'except' => ['login'],
'authMethods' => [
HttpBearerAuth::className(),
],
];
$behaviors['verbs'] = [
'class' => \yii\filters\VerbFilter::className(),
'actions' => [
//'index' => ['get'],
'login' => ['post', 'put'],
'view' => ['get'],
//'create' => ['get', 'post'],
'update' => ['put'],
//'delete' => ['post', 'delete'],
'delete' => [''],
'test', ['post']
],
];
return $behaviors;
}
在main.php中
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => true,
'showScriptName' => false,
'rules' => [
[
'class' => 'yii\rest\UrlRule',
'controller' => ['v1/vendor'],
'extraPatterns' => [
'POST,PUT login' => 'login',
'POST logout' => 'logout',
'POST test' => 'test'
],
'tokens' => [
'{id}' => '<id:\\w+>'
]
],
],
]
所以当我测试并将GET请求发送到
GET localhost/mywebsite/api/web/v1/vendors/test
它返回 404 而不是 405 状态请任何帮助
【问题讨论】:
-
如果你尝试
POST请求呢? -
它返回 200 @EdvinTenovimas
标签: php rest yii2 yii2-advanced-app