允许从外部服务器 YII2 获取 POST 数据

Posted

技术标签:

【中文标题】允许从外部服务器 YII2 获取 POST 数据【英文标题】:Allow to get POST data from outter server YII2 【发布时间】:2015-12-08 09:02:17 【问题描述】:

我想创建一个yii2 路由,它可以接收来自其他服务器的 POST 数据(当然我知道所有风险)。

我试着像往常一样发送它,但我收到了这个错误消息。

Error 400

Unable to verify your data submission. 

差不多就是这样……

public function actionWriteSession()
   
    if (isset($_POST))
    
        print_r($_POST);
        ...
        write to session
        ...
    
    ...

有什么建议吗?

谢谢..

【问题讨论】:

您能否提供更多您想要的信息,以及您的代码。 是的,ebst 建议,请在询问之前提供一些代码 你应该像 $this->enableCsrfValidation=false 一样禁用控制器的 csrf 验证; Nuriddin Rashidov,非常感谢您,.. 它有效.. 【参考方案1】:

你应该禁用 csrf 验证 例如:

$this->enableCsrfValidation=false;//In your controller context

// Or if you only use this action for sending post from outer server
// you can disbalecsrf token verification only this action. So, in your controller

public function beforeAction($action)
            
    if ($action->id == 'writeSession') 
        Yii::$app->controller->enableCsrfValidation = false;
    

    return parent::beforeAction($action);

【讨论】:

一点也不;)。 @Ryan Arief

以上是关于允许从外部服务器 YII2 获取 POST 数据的主要内容,如果未能解决你的问题,请参考以下文章

Yii2如何将表单请求发送到外部url

yii2 ajax post设置csrf

从 extjs 网格中获取 post 参数

yii2数据库读写分离配置

post发送数据

在 POST 请求中使用 Angular 和 Yii2 的 CORS 错误