客户已要求通过Web界面以及REST API提供完全相同的端点。
只有在登录时才能使用Web浏览器显示相同的端点。通过REST API访问时,必须提交有效的访问令牌。
此特定端点的规则定义如下:
[
'class' => 'yii\rest\UrlRule',
'controller' => 'site',
'pluralize' => false,
'extraPatterns' => [
'POST upload-raw-data' => 'uploadRawData'
],
]
现在,当我尝试访问此端点时,我得到了以下结果:
在启用enableStrictParsing的情况下尝试相同时,我发现了404错误。
如果我需要提供代码的其他部分,我很乐意提供它们。
答案 0 :(得分:0)
我想我找到了解决问题的方法。问题似乎是CSRF验证。
通过在beforeAction()中禁用此特定操作,POST调用将按预期运行。
public function beforeAction($action) {
if ($action->id == 'upload-raw-data')
Yii::$app->controller->enableCsrfValidation = false;
return parent::beforeAction($action);
}