.sendBeacon передает пустой запрос

Есть страница 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 есть, однако сервер не успевает обработать запрос.


Ответы (1 шт):

Автор решения: levy

Проблема была в том, что .sendBeacon передает только FormData, blob и json. Так что изменил строчку:

var data = new FormData;
data.append ('id',data);
→ Ссылка