Отправка JSON данных через JavaScript

Разрабатываю Flask-приложение. При клике по кнопке пытаюсь передать binder_id в формате JSON, но получаю ошибку: “неправильный JSON”. Как правильно отправить данные?

document.getElementById('delBtn').addEventListener('click', function(event) {
  event.preventDefault();
  let itemId = this.getAttribute('data-id');
  fetch('/remove', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ id: itemId })
  }).then(resp => {
    if(resp.ok) console.log('Элемент удален');
  }).catch(err => console.error('Ошибка:', err));
});

Проблема скорее всего не на стороне клиента, а на сервере. Я бы проверил, как именно обрабатываются данные в Flask и соответствует ли тип binder_id ожидаемым параметрам. Иногда проблема возникает из-за дополнительных символов при передаче значения (например, если id передается как строка в неочевидном формате). Рекомендую посмотреть данные в сети через devtools и сверить их с кодом на сервере.

Проверь, что Flask обрабатывает именно тот JSON, который отправляешь. Иногда проблема бывает в заголовках или процессе сериализации. Что показывает консоль браузера? Интересно, как настроен парсер данных на сервере и пробовал ли ты другие методы отправки?

Когда сталкивался с такой ошибкой, выяснилось, что дело может быть даже в мелочи. В моем случае проблема оказалась в том, что данные на сервер приходили с лишними пробелами и переносами, что приводило к невозможности их правильного парсинга. Стоит проверить и убедиться, что в момент отправки JSON выглядит именно так, как ожидается сервером. Иногда добавление логирования на Flask помогает понять, где именно происходит потеря данных. Попробуй сравнить отсыланные данные с тем, что получаешь на сервере.

Если ошибка всё ещё возникает, возможно, проблема кроется в том, как получает значение data-id. Мне приходилось переделывать передачу атрибута, чтобы JSON формировался корректно. Проверь, что в data-id нет лишних символов и пробелов, и попробуй использовать dataset вместо getAttribute. Логирование на сервере поможет выявить точную причину проблемы.

Попробуй вывести данные на сервере до парсинга, вдруг там лишние символы или неверная кодировка. Ты уже проверял, как именно приходит body запроса? Мне кажется, промежуточное логирование может прояснить ситуацию.