.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);