2017-02-07 16 views
2

yii2の既存のWebページを変更しています。 私は、コードのこのセクションを持っていた:Yii2:data-method = 'post'がGETリクエストを送信しています

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

私は同じページ上の別のコンテナにこれを移動しました。

(私はそれがforeachループ内で今ウィジェット内匿名関数の中にあった以前のよう$projectInfo->id$data->idを変え、少し調整しなければならなかった。しかし、これは、私が思うの関連ではありません。)

をする前と後の両方変更同じ行は、HTML内に存在(ただし、ページの別の部分で)です:

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

しかし、実行のHTTPリクエストには現在、代わりにPOSTのGETとして送信されます。 NOW "POST /participant/default/apply/13/1 HTTP/1.1"

:BEFORE

"GET /participant/default/apply/13/1 HTTP/1.1"

、これはどのように新しい場所にPOSTとして動作するようにコードを取得するように変更し、なぜ私は把握することはできません。このhrefの実行は、私が気付いていないいくつかの追加要因に依存しなければなりません。

答えて

2

yii.js内のJavaScriptにより、リンクを使用してPOSTリクエストを送信することができます。このファイルはサイレントモードでラップします。このJSが資産リンクでロードされていない場合、GET要求を送信する標準的な方法で動作します。

yii.jsがロードされているかどうかを確認します(通常はyii\web\YiiAssetを直接または依存関係に登録します)。

+0

ありがとうございます!それは私の問題を完全には解決しなかったが、それは私にヒントを与えた。 1. htmlの 'body'の終わりの直前にyii.jsへの参照があります。 ' この参照は有効です。それがロードされていることを確認するために何かをチェックすることはできますか? 2.このhrefの処理方法に影響を与えるかもしれないJSのページの複雑さが増しています。私は 'data-method'関連のコードが実行されないのはまだ分かりませんが、私の質問に対しては有効な答えがあります。 – Radek

関連する問題