Запрос к 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;
}
В ответ должен прийти вот такой код
НО Приходит вот это
<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, но не получается.
Подскажите что я делаю не так?

