![](/img/trans.png)
[英]Programatically POST'ing a form is not doing what my browser is doing. Why?
[英]Form not POST ing
這是我的觀點,那里有一個包含字段和提交按鈕的表格。
<form id="typeheadForm" method="post" class="form-horizontal">
<div class="form-group">
<label class="col-xs-3 control-label">Movie</label>
<div class="col-xs-3">
<input type="text" class="form-control" name="state" id="movie_name" />
</div>
</div>
<input type='submit' name='submit' value='Search' class="btn btn-squared btn-default">
</form>
以下是我的控制器代碼
public function actionMovies_all()
{
$this->layout = "main";
if ( isset( $_POST[ 'movie_name' ] ) )
{
print_r("success");die();
}
if ( Yii::$app->request->post() )
{
print_r(Yii::$app->request->post());die();
}
}
我無法過帳表格。 我究竟做錯了什么? 我收到錯誤消息“錯誤的請求(#400)無法驗證您的數據提交。”
將<form id="typeheadForm" method="post" class="form-horizontal">
替換為
<?= \yii\helpers\Html::beginForm('', 'post', ['id' => 'typeheadForm', 'class' => 'form-horizontal']);?>
您收到的bad request
因為當您手動創建表單時,沒有在其中包含csrf令牌。 當您使用Html::beginForm
方法創建表單時,它會在內部對其進行處理。
嘗試這個:
public function actionMovies_all()
{
$this->layout = 'main';
if ( isset( $_POST[ 'submit' ] ) )
{
print_r('success');die();
}
if ( Yii::$app->request->post() )
{
print_r(Yii::$app->request->post());die();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.