@levysh

.sendBeacon передает пустой post, в чем ошибка?

Есть страница update с нее с помощью send.Beacon при закрытии страницы или перехода на другой url отправляю post id, чтобы потом по этому id найти запись в БД и изменить в ней переменные.

Код скрипта:
function changeEdit(){
var id = '<?= $model->id?>';
var data = {id:id};
navigator.sendBeacon("report/edit",data);
};
window.addEventListener('unload', chandeEdit);


В контроллере создал экшн:
public function actionEdit() {
$id = Yii::$app->request->post('id');
$sql = 'UPDATE report SET edit_on = 1 WHERE id = '.$id;
$connection = \Yii::$app->db->createCommand($sql)->execute();
}


Глобальный $_POST почему-то пустой. Если передавать через ajax, то post есть, однако сервер не успевает обработать запрос.
  • Вопрос задан
  • 74 просмотра
Решения вопроса 1
@levysh Автор вопроса
Проблема была в том, что .sendBeacon передает только FormData, blob и json.
Так что изменил строчку:
var data = new FormData;
data.append ('id',data);
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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