Запрос к PHP из JS методом Fetch

Всем привет! Возникла такая проблема. У меня есть ЯКарта, с балуном, в балуне описание и кнопка купить сделанная как див.

<div id="addcart" class="button button--small button--primary balloon__button add2basket _hold" onclick="addcart('2740 - СК-60-А. Уфа, Уфа-Аэропорт, ост. «Мега» (Мелькомбинат) в аэропорт');">В корзину</div>

По onclick отправляется в функцию ниже.

async function addcart(id) {
  if (document.querySelector('.add2basket').classList.contains('_hold')) {
    document.querySelector('.add2basket').innerHTML = '';
    document.querySelector('.add2basket').insertAdjacentHTML('beforeend', `Уже в корзине`);
    return;
  } else {
    document.querySelector('.add2basket').classList.add('_hold');
    const arr = [id];
    const data = {
      'arr': arr,
    };

    console.log(arr);
    console.log(data);
  
    const url = "/ajax/form-incart.php";
    let response = await fetch(url, {
      method: "POST",
      sessid: BX.bitrix_sessid(),
      body: JSON.stringify(data),
    });
    if (response.ok) {
      let result = await response.text();
      document.querySelector('.popup-cart__text').insertAdjacentHTML('beforeend', `${result}`);
      document.querySelector('.popup__close_area').classList.add('_active');
      console.log(result);
    } else {
      alert("Ошибка");
    }
  
    const parsed = parseInt(document.querySelector('#smallcart').textContent) + 1;
    document.querySelector('#smallcart').innerHTML = `${parsed}`;
  
    return false;
  }

В ответ должен прийти вот такой кодКод от php

НО Приходит вот это

<form action="/" id="form-order" method="post" onsubmit="return false;">
<div class="fieldset">
    <h2 class="legend">Поверхность добавлена в корзину</h2>
    <ul class="form-list">
        <li class="fields">
            <div class="field">
                <ul>
                    
                </ul>
                                    <button title="Продолжить" class="button btnclose"><span><span>Продолжить</span></span></button>
                <button title="Перейти в корзину" class="button btncart"><span><span>Перейти в корзину</span></span></button>
            </div>
        </li>
    </ul>
</div>

Что означает что я, скорее всего, неправильно прописал переменную data. Пробовал менять по разному - пока не получается ничего. Пробовал объявлять её как массив, пробовал просто присваивать ей значение из arr, пробовал объявлять её как FormData и заполнять данными из arr - не работает. Возможно ошибка вообще не там, и я бьюсь над ней зря. Пробовал заголовки "content-type": "application/x-www-form-urlencoded" и "application/json" - не помогло.

Есть старая версия сайта, где все скрипты написаны на jquery, там эта функция выглядит так Старый

Она отправляет данные так

введите сюда описание изображения

В то время, как у меня они отправляются так

введите сюда описание изображения

Что, как бы намекает на то, что нужно использовать FormData, но не получается.

Подскажите что я делаю не так?


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