我正在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执行必须依赖于我不知道的一些其他因素。
答案 0 :(得分:3)
您可以使用链接发送POST请求,这要归功于yii.js
文件中的JavaScript,该文件以静默形式包装它。如果未在资源链接中加载此链接,则以标准方式工作,即发送GET请求。
检查是否加载了yii.js
(通常是直接注册yii\web\YiiAsset
或依赖注册)。