fix: добавлен CSRF токен в форму комментариев AJAX
- Добавлена функция getCsrfToken() для получения токена из cookie - Добавлен скрытый input с csrfmiddlewaretoken в каждую форму - Исправлена отправка комментариев в AJAX-режиме
This commit is contained in:
parent
ab05b916dd
commit
bb2dc4ca31
@ -434,6 +434,7 @@ export function initRequestListHandler(options) {
|
||||
</div>
|
||||
<div class="comments-list" data-role="list"></div>
|
||||
<form class="comment-new mt-3 request-comment-form" data-role="form" autocomplete="off">
|
||||
<input type="hidden" name="csrfmiddlewaretoken" value="${getCsrfToken()}">
|
||||
<div class="message-field message-field--compact">
|
||||
<div class="dropdown message-emoji">
|
||||
<button type="button" class="btn btn-ghost btn-emoji message-icon-btn"
|
||||
@ -456,6 +457,26 @@ export function initRequestListHandler(options) {
|
||||
`;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает CSRF токен из cookie
|
||||
* @returns {string} CSRF токен
|
||||
*/
|
||||
function getCsrfToken() {
|
||||
const name = 'csrftoken';
|
||||
let cookieValue = '';
|
||||
if (document.cookie && document.cookie !== '') {
|
||||
const cookies = document.cookie.split(';');
|
||||
for (let i = 0; i < cookies.length; i++) {
|
||||
const cookie = cookies[i].trim();
|
||||
if (cookie.substring(0, name.length + 1) === (name + '=')) {
|
||||
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
return cookieValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Получает CSS класс для статуса
|
||||
* @param {string} status - Статус заявления
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user