2017-09-07 16:13:35 6088次浏览 1条回答 1 悬赏 10 金钱

问题:
1.通过get 方法请求返回正常,通过post方法请求则报404,index方法不需要传参数.
2.Yii::$app->request->bodyParams;获取不到请求参数的问题还没解决. 目的:我打算约定所有接口都以POST方法请求,不知道这样是不是符合restful风格

api控制器类名为TestAbcController.php urlManager配置如下:

'urlManager' => [
            'enablePrettyUrl' => true,  //美化url==ture
            'enableStrictParsing' => true,  //启用严格解析
            'showScriptName' => false,   //隐藏index.php
            'rules' => [
                [
                    'class' => 'yii\rest\UrlRule',
                    'controller' => [
                        'v1/test-abc',
                    ],
                    'extraPatterns' => [
                        'GET index' => 'test-abc/index',
                        'POST index' => 'test-abc/index',
                    ],
                    'pluralize' => false,   //禁用复数形式
                ],
            ],
        ],
补充于 2017-09-08 10:06

是的,还没有加认证,我想先实现功能,之后需要了再加入认证

  • 回答于 2017-09-07 19:55 举报

    这里的问题在与浏览器发送第一个请求为OPTIONS你可以在你的浏览器调试那看下,
    你可以参考yii\rest下面的URL设置。这个总的来说,说来话长,不是一下能说清楚的。
    原理就是浏览器会发送一个OPTIONS到你的 test-abc/index
    你这时可以修改'OPTIONS,POST index' => 'test-abc/index',
    这样就能通过了。
    但是项目会用到授权,比如jwt授权,而这个授权的行为是在第一个位置,你的路还很长哈。

    2 条回复
    回复于 2017-09-07 19:56 回复

    'OPTIONS,POST index' => 'test-abc/index',中间那,是半角,不要搞错了

    回复于 2017-09-07 19:58 回复

    而完整的一个项目,涉及到的用户授权,认证等一系列问题。你的知识点还得多补充。当涉及到认证时,就是先认证,还是先cros这个环节入手。

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
alvin_cn
助理

alvin_cn

注册时间:2017-08-03
最后登录:2018-10-09
在线时长:11小时37分
  • 粉丝0
  • 金钱15
  • 威望0
  • 积分125

热门问题