2017-02-07 4 views
2

Я вношу изменения в существующую веб-страницу в yii2. я имел этот раздел кода:Yii2: data-method = 'post' отправляет запрос GET

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 должно зависеть от некоторого дополнительного фактора, о котором я не знаю.

ответ

2

Вы можете отправить запрос POST по ссылке, используя JavaScript внутри файла yii.js, который обертывает его в форме беззвучно. Если эта JS не загружается в ссылку на ресурсы, она работает стандартным способом, который отправляет запросы GET.

Проверьте, есть ли yii.js (обычно с помощью регистрации yii\web\YiiAsset напрямую или по запросу).

+0

Спасибо! Это дало мне подсказку, хотя она не решила мою проблему полностью. 1. У меня есть ссылка на yii.js как раз до конца 'body' в html: ' ' Эта ссылка действительна. Могу ли я проверить что-нибудь еще, чтобы убедиться, что оно загружено? 2. На моей странице больше сложностей в JS, что может повлиять на обработку этого 'href'. Я все еще не уверен, почему код, связанный с данным методом, не выполняется, но у меня есть правильный ответ на мой вопрос. – Radek

Смежные вопросы