@pashaa

Почему ссылка с post запросом не активна?

echo Html::a('Для активации аккаунта перейдите по этой ссылке.', 
                ['customer/activateaccount'],[
                'data-method' => 'POST',
                'data-params' =>
                [
                    'key' => $customer->access_token
                ]
                ]);

Сделал такую ссылку но она не активна. Мне нужно чтобы по post запросу выполнялось действие и осуществлялся переход на страницу с сообщение об удачной активации.(ссылка присылается на почту)
Есть такой код но он выполняется с помощью Get.
echo Html::a('Для активации аккаунта перейдите по этой ссылке.',
    Yii::$app->urlManager->createAbsoluteUrl(
        [
            '/customer/activateaccount',
            'key' => $customer->access_token
        ]
    ));

Вывод текста об успешной активации пока выполняется так return 'Активация прошла успешно.
  • Вопрос задан
  • 113 просмотров
Пригласить эксперта
Ответы на вопрос 3
webinar
@webinar Куратор тега Yii
Учим yii: https://youtu.be/-WRMlGHLgRg
yii2 имеет js, который перехватывает клик по ссылке c data-method="post" и оправляет post запрос. Что вы и сделали с помощью хелпера Html. Но послать такую ссылку по почте не получится. Так как js в письмо не попадет да и вряд ли почтовая программа позволит его выполнить. И даже если выполнит он не пройдет валидацию crfs токена, который на сайте подставился бы автоматом.
Так что для почты - только обычная ссылка (get запрос) с параметрами, например
echo Html::a('Для активации аккаунта перейдите по этой ссылке.', 
                ['customer/activateaccount','key'=> $customer->access_token]
                );
Ответ написан
Комментировать
supervaleha
@supervaleha
Web-development
Ссылку нельзя отправить ПОСТом.

Сделайте или аяксом ($.post), или вариации на тему отправки формы при клике на ссылку.
Ответ написан
@BorisKorobkov
Web developer
Теоретически можно отправить письмо с <form action="https://..."><input type="submit">, но не все почтовые клиенты такое поддерживают. И вдобавок yii будет ругаться на невалидный csrf (его можно отключить, но это неправильно).

В письме отправляйте только обычные ссылки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы