我使用ActiveController和Basic Authentication在Yii2-Basic中编写了一个RESTful API。我可以使用GET方法,但是当我尝试Post时,使用Postman Chrome Extension,它会抛出一个错误,说“方法不允许。这个网址只能处理以下请求方法:GET,HEAD。”。
我是否需要在我的Web服务器上配置任何内容来测试它,或者需要控制器中的其他功能?我甚至尝试了一个非常简单的表,有两列,并将列设置为安全,如另一个问题所示。
感谢这方面的任何帮助。以下是我目前的代码:
<?php
namespace app\controllers;
use yii\rest\ActiveController;
use yii\filters\auth\HttpBasicAuth;
class TestController extends ActiveController
{
public $modelClass = 'app\models\Test';
public function behaviors()
{
$behaviors = parent::behaviors();
$behaviors['authenticator'] = [
'class' => HttpBasicAuth::className(),
];
return $behaviors;
}
}
我用来测试的网址是:http://localhost/test
答案 0 :(得分:1)
尝试为您的操作灵活地允许POST方法:
$behaviors['verbs'] = [
'class' => \yii\filters\VerbFilter::className(),
'actions' => [
'index' => ['post'],
],
];
答案 1 :(得分:1)
原来我使用了错误的终点。使用这个终点对我有用:
答案 2 :(得分:0)
尝试一下: $ params = \ Yii :: $ app-> request-> post();
供参考: https://forum.yiiframework.com/t/rest-api-model-create-problem/83651