Yii2: data-method='post' 正在发送 GET 请求

Yii2: data-method='post' is sending GET request

我正在 yii2 中对现有网页进行更改。 我有这段代码:

Html::a('Confirm!',[
        'default/apply',
        'confirm' => 1,
        'id' => $data->id
    ],['class' => 'btn-primary','data-method' => 'post'])

我已将其移至同一页面上的不同容器。

(我不得不稍微调整一下,将 $data->id 更改为 $projectInfo->id 之前它在小部件内的匿名函数内,现在在 foreach 循环内。但这不应该是我想相关。)

更改前后同一行出现在 html 中(但在页面的不同部分):

<a class="btn-primary" href="/participant/default/apply/13/1" data-method="post">Confirm!</a>

但在执行时,http 请求现在作为 GET 而不是 POST 发送。

之前:"POST /participant/default/apply/13/1 HTTP/1.1"

现在:"GET /participant/default/apply/13/1 HTTP/1.1"

我不明白为什么会发生这种变化,以及如何让代码在新位置作为 POST 工作。此 href 执行必须取决于一些我不知道的其他因素。

您可以使用 link 发送 POST 请求,这要感谢 JavaScript 在 yii.js 文件中以静默形式包装它。如果此 JS 未加载到资产中 link 以发送 GET 请求的标准方式工作。

检查是否加载了yii.js(通常通过直接注册yii\web\YiiAsset或通过依赖注册)。